Jay*_*ley 2 android memory-leaks
我是Android开发的新手,我读过有关在Android平台上避免内存泄漏的文章.我不确定,如果我的代码是......
public class TransactionDetailActivity extends Activity {
private Transaction transaction;
private TextView tvDetail; //static reference
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen_transaction_detail);
tvDetail = (TextView) findViewById(R.id.detail); //init of reference
}
Run Code Online (Sandbox Code Playgroud)
这可以存储到静态引用中导致在切换其他活动后屏幕旋转后任何内存泄漏吗?如果是,我该如何避免呢?
非常感谢任何帮助!
private TextView tvDetail; 不是静态参考.
private static TextView tvDetail;是一个静态参考,但它是不可取的.在这里你有一个解释:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html
有时,我们开发人员将变量设置为静态以避免重新创建对象...在这种情况下类似这样:
// DON'T DO THIS! FOR THE LOVE OF GOD!
if( tvDetail == null ){
tvDetail = (TextView) findViewById(R.id.detail);
}
Run Code Online (Sandbox Code Playgroud)
但这在android开发中是错误的,因为每次onCreate调用该方法时,也会创建对UI元素的新引用.所以,试着避免上面的代码.
| 归档时间: |
|
| 查看次数: |
3040 次 |
| 最近记录: |