仅在第一个OnCreate上运行代码

时间:2016-03-25 06:23:02

标签: android android-studio android-lifecycle oncreate

我有一段代码,我只希望在第一次调用特定的OnCreate()方法时运行(每个应用程序会话),而不是每次创建活动时。有没有办法在Android中执行此操作?

4 个答案:

答案 0 :(得分:14)

protected void onCreate(Bundle savedInstanceState)拥有您所需要的一切。

如果savedInstanceState == null那么这是第一次。

因此,您不需要引入额外的静态变量。

答案 1 :(得分:2)

使用sharedpreference ...首次将值设置为true ...在每次运行时检查值是否设置为true ...并基于编码执行代码

对于前。

SharedPreferences preferences = getSharedPreferences("MyPrefrence", MODE_PRIVATE);
                if (!preferences.getBoolean("isFirstTime", false)) {
  //your code goes here
 final SharedPreferences pref = getSharedPreferences("MyPrefrence", MODE_PRIVATE);
                    SharedPreferences.Editor editor = pref.edit();
                    editor.putBoolean("isFirstTime", true);
                    editor.commit();
}

答案 2 :(得分:2)

在您的活动中使用静态变量,如下所示

private static boolean  DpisrunOnce=false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_run_once);
    if (DpisrunOnce){
        Toast.makeText(getApplicationContext(), "already runned", Toast.LENGTH_LONG).show();
//is already run not run again
    }else{
//not run do yor work here
        Toast.makeText(getApplicationContext(), "not runned", Toast.LENGTH_LONG).show();
        DpisrunOnce =true;
    }
}

答案 3 :(得分:1)

使用static变量。

static boolean checkFirstTime;