【发布时间】:2013-11-12 15:07:06
【问题描述】:
我有关于 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();
}
}
但是,我想在保存后开始下一个活动 - 所以我需要使用一个意图和 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()?或者,是因为新的activity会在顶部,Android会自动调用onStop,因为它现在在后台?
关于 startActivity(intent) 如何与应用程序周期一起工作的问题太多了,我不明白。如果有人指出我的链接会很有帮助。
谢谢!
编辑:意图不在 onStop 中。它在另一种方法中对应于一个按钮。单击按钮后,我需要保存数据——转到 onstop——然后转到下一个活动。我怎样才能做到这一点?
【问题讨论】:
-
onStop 在您的活动完全被遮挡时调用。在那种状态下启动一个新的 Activity 似乎是个坏主意,因为通常你的 Activity 被隐藏的原因是另一个 Activity 启动了!如果您尝试这样做,我希望它会引发异常。
标签: android android-intent android-lifecycle