我对Android的 Application 类有疑问。我有一个布尔变量,每当我需要通过getter和setter方法进行更新时,都在更改此变量。但是,当我杀死我的应用程序(通过从最近任务列表中滑动)并重新启动应用程序并访问其布尔变量时,它始终具有上次保存的值。我的问题是,当我杀死我的应用程序时, Application class 是否不会被杀死或删除?因为布尔变量(我正在存储)的默认值为true。如果我通过setter方法将该值更改为false并终止该应用程序,然后再次重新启动我的应用程序,则该布尔变量中的值仍然为false。我的假设是它应该具有真实的价值,因为该应用程序已重新启动,并且所有变量都应该重置(或者应该赋予我所提供的任何值)。有帮助吗?
下面是我在Application类中使用的代码。
public class AppController extends Application {
private boolean isAppRunningFirstTime = true;
public boolean isAppRunningFirstTime() {
return isAppRunningFirstTime;
}
public void setAppRunningFirstTime(boolean appRunningFirstTime) {
isAppRunningFirstTime = appRunningFirstTime;
}
}
答案 0 :(得分:0)
android应用程序的生命周期非常复杂,并且取决于应用程序中包含的组件的类型。例如,如果有任何服务,则从“最近”屏幕关闭任务后,该进程(以及扩展的AppController对象)将保留在内存中。如果您从“设置”中强制停止它,则该进程将被杀死,并且AppController实例将从内存中删除。通过在AppController.onCreate()及其构造函数中添加一些日志或检查android.os.Process.getStartUptimeMillis()的结果,您可能会更好地了解发生了什么