根据个人经验总结:
1.尽量避免使用 static(其生命周期是与应用程序共存亡的)声明变量。
2.图片使用后要及时回收Bitmap->recycle();
3.集合用完尽量赋值为null;
4.使用内部类是,尽量使用静态内部类;因为非静态内部类都持有外部类的一个强引用。若不使用不能使用静态内部类,就提出此类,使用弱应用;以Hanlder为例
静态内部类
/**
*
* 实现的主要功能。
* @version 1.0.0
* @author Abay Zhuang <br/>
* Create at 2014-7-28
*/
public class HandlerActivity2 extends Activity {
private static final int MESSAGE_1 = 1;
private static final int MESSAGE_2 = 2;
private static final int MESSAGE_3 = 3;
private final Handler mHandler = new MyHandler(this);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHandler.sendMessageDelayed(Message.obtain(), 60000);
// just finish this activity
finish();
}
public void todo() {
};
private static class MyHandler extends Handler {
private final WeakReference<HandlerActivity2> mActivity;
public MyHandler(HandlerActivity2 activity) {
mActivity = new WeakReference<HandlerActivity2>(activity);
}
@Override
public void handleMessage(Message msg) {
System.out.println(msg);
if (mActivity.get() == null) {
return;
}
}
}
}
外包类
public class HandlerActivity2 extends Activity {
private static final int MESSAGE_1 = 1;
private static final int MESSAGE_2 = 2;
private static final int MESSAGE_3 = 3;
private final Handler mHandler = new MyHandler(this);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHandler.sendMessageDelayed(Message.obtain(), 60000);
// just finish this activity
finish();
}
public void todo() {
};
}
public class MyHandler extends Handler {
private final WeakReference<HandlerActivity2> mActivity;
public MyHandler(HandlerActivity2 activity) {
mActivity = new WeakReference<HandlerActivity2>(activity);
}
@Override
public void handleMessage(Message msg) {
System.out.println(msg);
if (mActivity.get() == null) {
return;
}
}
}
5.ListView 的Adapter要用ViewHolder。
6.当需要使用上下文Context时,尽量使用Application;如在获取资源文件String,dimen,deawable、Toast等。
package app.grade.com.allservice;
import android.app.Application;
import android.widget.Toast;
public class MyApplicatin extends Application {
private static MyApplicatin instance = null;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static MyApplicatin getInstance(){
return instance;
}
public void testToast(){
Toast.makeText(MyApplicatin.getInstance(),"",Toast.LENGTH_LONG).show();
}
}
如有需要补,请留言。