Android知识点:process属性、openOrCreateDatabase、URLEncoder.encode、垃圾回收、 缓存处理、断点续传

1.process属性:

在清单里为activity或者serveice配置process属性,可以指定在某一个包名的线程中执行,而不是当前的包名的线程。

1
android:process="com.rongqin.test"



2.openOrCreateDatabase方法:

通过openOrCreateDatabase方法可以修改数据库存储路径。

1
SQLiteDatabase.openOrCreateDatabase(file, factory);

参考资料:http://blog.csdn.net/wangqilin8888/article/details/7903048


3.解决url汉字乱码的方法:

URLEncoder.encode(String)方法是对url中的中文参数经行编码的,可以解决乱码的问题。

1
2
3
4
5
6
7
8
9
10
public class TestUrlEncode
{
    public static void main(String[] args) {
        String url = "http://www.xinboedu.com/";
        String getParam = "?key1=阿斯顿";
        String newUrl = URLEncoder.encode(getParam);
        System.out.println(newUrl);
        //打印结果:%3Fkey1%3D%E9%98%BF%E6%96%AF%E9%A1%BF
    }
}


4.flag_activity_new_task:

启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去(区别是根据activity在manifest里面的配置,这个activity可能会放在不同的task栈里面)。

如果intent设置了flag_activity_new_task,跟从图标启动进入的效果一样,即重建一个栈,否则就是把任务加到自己的栈中。


5.垃圾回收(GC:Gabage Collection)中如何彻底释放list容器对象:

1
2
3
4
5
6
7
private ArrayList<List> list = new ArrayList<List>();
public void onDestroy()
{
    super.onDestroy();
  list.clear();//先清除list里的元素,清除对元素的引用
  list = null;//清除对list的引用
}


6.缓存的优化处理:

 1.可以优先考虑分页加载、图片压缩等

 2.另外可以通过一二级缓存,在将bitmap对象加入到二级缓存里前,先通过bmp.recycle()方法在内存中释放掉

 3.惰性加载

 4.弱引用    

1
2
3
4
5
6
public void ruo()
{
    WeakReference<MediaPlayer> player = new WeakReference<MediaPlayer>(new MediaPlayer());
    MediaPlayer mediaPlayer = player.get();
    mediaPlayer.start();
}


7.断点续传的原理:

 1.append方法的运用

 2.randomAccessFile(需要用到这个类,可以读取到文件字段里的任意位置)

 3.下载的字节数,存到数据库里,在get或post请求服务端





本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1248359,如需转载请自行联系原作者

上一篇:iOS - Mac Vim 编辑器


下一篇:Logwatch Linux/Unix系统日志检测软件