运行 仅在第一个 OnCreate 上的代码
Run code on first OnCreate only
我有一段代码只想 运行 第一次调用特定 OnCreate() 方法时(每个应用程序会话),而不是每次 activity被建造。在 Android 中有没有办法做到这一点?
使用 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();
}
使用 static
变量。
static boolean checkFirstTime;
在您的 activity 中使用静态变量,如下所示
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;
}
}
protected void onCreate(Bundle savedInstanceState)
应有尽有。
如果savedInstanceState == null
那么是第一次
因此您不需要引入额外的静态变量。
我有一段代码只想 运行 第一次调用特定 OnCreate() 方法时(每个应用程序会话),而不是每次 activity被建造。在 Android 中有没有办法做到这一点?
使用 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();
}
使用 static
变量。
static boolean checkFirstTime;
在您的 activity 中使用静态变量,如下所示
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;
}
}
protected void onCreate(Bundle savedInstanceState)
应有尽有。
如果savedInstanceState == null
那么是第一次
因此您不需要引入额外的静态变量。