当前位置: 代码迷 >> Android >> Activity中static静态变量释放的有关问题
  详细解决方案

Activity中static静态变量释放的有关问题

热度:52   发布时间:2016-05-01 21:19:52.0
Activity中static静态变量释放的问题

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class ErrorTestActivity extends Activity {
  /** Called when the activity is first created. */
  private static boolean Flag = false;
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  Log.i("wangchao","wocao"+Flag);
  Flag = true;
   
  }
}

程序第一次运行,打印信息为false,之后推出程序,再次运行,打印信息为true。
当程序退出的时候,定义的Flag不会被销毁么?为什么还会保留下来?
什么时候才能销毁static变量呢?

------解决方案--------------------
探讨

在DDMS中查看,会发现推出了Activity,但是线程列表中依然有这个线程。

我试了一下,重写了onDestory,在onDestory里添加android.os.Process.killProcess(android.os.Process.myPid());把线程干掉,再次调用就正常了。
也就是说线程没有销毁,那么资源就没有释放。
  相关解决方案