gpt4 book ai didi

android - 如何在每个应用程序启动时只执行一次?

转载 作者:IT老高 更新时间:2023-10-28 22:12:31 27 4
gpt4 key购买 nike

我想在应用程序中实现一个更新检查器,我显然只需要在您启动应用程序时显示一次。如果我在 onCreate()onStart() 方法中进行调用,则每次创建 Activity 时都会显示它,这不是一个可行的解决方案。

所以我的问题是:有没有办法做某事,比如检查更新,每次应用程序启动/启动一次?

如果有点难以理解,我很抱歉,我在解释这一点时遇到了困难。

最佳答案

SharedPreferences 对我来说似乎是丑陋的解决方案。当您将应用程序构造函数用于此类目的时,它会更加简洁。

您只需要使用自己的 Application 类,而不是默认的。

public class MyApp extends Application {

public MyApp() {
// this method fires only once per application start.
// getApplicationContext returns null here

Log.i("main", "Constructor fired");
}

@Override
public void onCreate() {
super.onCreate();

// this method fires once as well as constructor
// but also application has context here

Log.i("main", "onCreate fired");
}
}

然后你应该在 AndroidManifest.xml 中注册这个类作为你的应用程序类

<application android:label="@string/app_name" android:name=".MyApp"> <------- here
<activity android:name="MyActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>

你甚至可以按下后退按钮,应用程序进入后台,不会浪费你的处理器资源,只有内存资源,然后你可以再次启动它,构造函数仍然没有触发,因为应用程序还没有完成。

您可以在任务管理器中清除内存,这样所有应用程序都将关闭,然后重新启动您的应用程序,以确保您的初始化代码再次触发。

关于android - 如何在每个应用程序启动时只执行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7360846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com