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