我的Android应用使用来检测应用是否在后台(例如,用户按下了主菜单)ComponentCallbacks2
。现在,我希望该应用程序在当前处于后台状态时更改活动,而不更改用户界面。
我唯一的问题是:如何更改用户在后台的活动,以便在他/她回到应用程序时弹出该活动,而不是在我致电时立即弹出startActivity(Intent i)
。
这是我希望我的应用执行的步骤:
现在,第一步和第二步都很好。但是,当我使用意图更改活动时,活动会突然打开……打扰用户。基本上,我想要加载的活性,使尽快为用户打开应用程序的备份,它进入游戏结束画面。
我对该主题的研究以及我自己尝试解决的问题:
我对此主题进行了大量研究,但其他问题都涉及在后台运行流程。为此,很明显,人们会使用一种服务。我的问题主要是针对用户在后台时如何更改活动,以便当他/她回到应用程序时弹出该活动。我也尝试过使用onContinue()方法,但是每次用户更改活动时都会调用该方法,从而使其不可靠。
感谢专家的建议:
富有的
我的建议是将您的偏好设置保存在onStop中(或当应用程序处于后台模式时)。然后在SplashActivity的OnCreate中使用该信息以启动游戏结束活动。
##在您的活动中,您会检测到背景
@Override
protected void onStop(){
super.onStop();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("isGameOver", isGameOver);
// Commit the edits!
editor.commit();
}
#########飞溅活动
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread timerThread = new Thread(){
public void run(){
try{
sleep(2000);
}catch(InterruptedException e){
e.printStackTrace();
}finally{
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean isGameOver = settings.getBoolean("isGameOver", false);
if(isGameOver) {
Intent intent = new Intent(SplashActivity.this,GameOverActivity.class);
startActivity(intent);
} else {
// Start Main Activity
}
}
}
}; timerThread.start();
}
@Override
protected void onPause() {
super.onPause();
finish();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句