startActivity(intent)和onStop

时间:2013-11-12 15:07:07

标签: android android-intent android-lifecycle

我遇到有关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--然后转到下一个活动。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您应该在onPause()而不是onStop()中保存状态,因为在某些条件下onStop()永远不会被调用。我们保证会调用onPause()

onPause()将始终在您的活动中调用,当前面显示另一个活动时。

这应该可以解决你的问题。