我遇到有关startActivity(intent)和onStop的问题。 Android API建议在onStop中保存数据,这就是我在这里所做的:
public void onStop(){
super.onStop();
if(tosave)
{
Editor editor = sp.edit();
editor.putInt(getString(R.string.index_of_text_color), text_color_index);
editor.putInt(getString(R.string.index_of_background_color), background_color_index);
editor.commit();
}
}
但是,我想在保存后开始下一个活动 - 所以我需要使用intent和startActivity(intent)。
public void click(View v){
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
我的问题是,带有两个标志的startActivity(intent)在完成应用程序时调用onStop()方法,还是需要调用finish()?我开始一项新活动后,是否允许我调用finish()?或者,是因为新活动将在顶部,Android现在自动调用onStop,因为它现在在后台?
有很多关于startActivity(intent)如何与我不理解的应用程序循环一起工作的问题。如果有人指向我链接,将会很有帮助。
谢谢!
编辑:意图不在onStop上。它是另一种对应按钮的方法。单击按钮后,我将需要保存数据 - 转到onstop--然后转到下一个活动。我怎样才能做到这一点?
答案 0 :(得分:0)
您应该在onPause()
而不是onStop()
中保存状态,因为在某些条件下onStop()
永远不会被调用。我们保证会调用onPause()
。
onPause()
将始终在您的活动中调用,当前面显示另一个活动时。
这应该可以解决你的问题。