我正在使用Application类来共享活动中的全局变量,我在onCreate应用程序类的方法中设置它们.当我启动app变量时,在onCreate中设置值,并且在活动中使用app时,我正在更改varables的值.当我退出应用程序并再次启动它时,我将获取旧值,即活动中设置的变量的最后值.这意味着onCreate of Application不再在启动应用程序上运行.这是Application类的onCreate方法中的代码.
@Override
public void onCreate() {
super.onCreate();
application = this;
category = 12;
subCategory =22;
}
Run Code Online (Sandbox Code Playgroud)
看起来旧的应用程序对象仍在内存中,并且在第二次启动应用程序时不会调用onCreate.
需要做的是使onCreate应用程序类再次运行或在应用程序类中初始化变量的位置,以便每次都运行代码.
请在清单文件中声明您的应用程序类名称.如下
<application
android:name="com.tt.app.TTApplication"
android:label="@string/app_name"
Run Code Online (Sandbox Code Playgroud)
在 Application 类中,仅当退出应用程序时进程结束时才会调用 onCreate() 方法。通常,当系统需要内存或使用后退按钮而不是主页按钮退出应用程序时,该进程会停止。但是,您不能指望它会被终止。
然而,在活动之间传递参数的正确方法是意图或偏好。就你而言,我觉得偏好是正确的选择。
如果您确实想在退出应用程序时终止进程,则可以在
System.exit(0);用户在第一个活动中按后退键时调用。绝对不建议这样做,因为这意味着与 Android 操作系统的工作方式作斗争,并且可能会导致问题。
更多相关内容请参见:退出应用程序会让人皱眉吗?
| 归档时间: |
|
| 查看次数: |
7858 次 |
| 最近记录: |