检测android应用程序何时首次运行

检测android应用程序何时首次运行,android,Android,当Android应用程序第一次运行时,我需要检测Android设备ID。我提到我不使用共享首选项或文件。如何检测应用程序的第一次运行?您可以使用Android.app.Application类来存储标志 初始化标志=false第一次。。安装应用程序时,将标志更改为true 如果您想要存储数据,需要从应用程序中的任何地方、多个活动访问的全局变量,换句话说,您想要维护应用程序对象可以帮助的整个应用程序的全局“状态” 为此,我们必须创建一个扩展了Android.app.Application类的类,将

当Android应用程序第一次运行时,我需要检测Android设备ID。我提到我不使用共享首选项或文件。如何检测应用程序的第一次运行?

您可以使用
Android.app.Application类
来存储标志

初始化
标志=false第一次。。安装应用程序时,将标志更改为true

如果您想要存储数据,需要从应用程序中的任何地方、多个活动访问的全局变量,换句话说,您想要维护应用程序对象可以帮助的整个应用程序的全局“状态”

为此,我们必须创建一个扩展了
Android.app.Application
类的类,将我们自己的方法添加到该类中,并在
AndroidManifest.xml
中定义该类,如下所示

 <application
    android:name=".HelloApplication "
    android:icon="@drawable/first_aid"
    android:label="@string/app_name" >
...
</application>




public class HelloApplication extends Application {
        private int globalVariable=1;

        public int getGlobalVariable() {
                return globalVariable;
        }

        public void setGlobalVariable(int globalVariable) {
                this.globalVariable = globalVariable;
        }
在应用程序中存在任何未破坏的活动之前,不会销毁应用程序对象。即使从内存中删除了整个应用程序,如果需要,也可以在
onCreate
方法中重新初始化变量。
您可以尝试相同的数据存储,例如使用一个带有静态字段和方法的简单对象,如下图所示,这是一种不太优雅的方法,如果在整个应用程序终止后需要重新初始化,则必须在每个活动中实现重新初始化。

您只能在第一次操作时使用该代码块

在onCreate中:


是否有任何东西阻止您使用SharedReference?这可能是解决您问题的常用方法。我的问题没有其他解决方案?没有,至少通过查看+6确认我需要检测应用程序何时首次运行。我不需要什么东西来保存数据。我用共享首选项解决了这个问题。在你的问题中,你提到“我提到我不使用共享首选项或文件”@Gabrielle你应该更新你的问题,提到你最终决定使用共享引用,或者更好:回答你自己的问题解释你的决定(并接受它)
  ((HelloApplication)getApplication()).setGlobalVariable(10);
    int valiable=((HelloApplication)getApplication()).getGlobalVariable();
 SharedPreferences prefs =
 PreferenceManager.getDefaultSharedPreferences(this);
        if (prefs.getBoolean("first_time", true)) {
            //do something for first time
            SharedPreferences.Editor editor = prefs.edit();
            editor.putBoolean("first_time", false);
            editor.commit();
        }