要防止Android活动在停留在后台后重新启动,可以使用以下方法:
public class MainActivity extends AppCompatActivity {
private SharedPreferences mPrefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPrefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
boolean isActivityStarted = mPrefs.getBoolean("isActivityStarted", false);
if (isActivityStarted) {
// 恢复活动状态
// ...
} else {
// 进行新的活动初始化
// ...
}
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean("isActivityStarted", true);
editor.apply();
}
}
public class MainActivity extends AppCompatActivity {
private static final String KEY_COUNT = "count";
private int mCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
mCount = savedInstanceState.getInt(KEY_COUNT);
}
// 使用mCount进行活动初始化
// ...
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(KEY_COUNT, mCount);
}
}
这些方法可以有效地防止Android活动在停留在后台后重新启动,并恢复之前的状态。