如何重新启动MAIN活动

时间:2012-06-13 13:15:30

标签: android android-activity restart

我需要在子活动返回时更新MAIN活动的内容。我在onActivityResult()方法中尝试了以下代码,该方法适用于其他活动(非MAIN)但不适用于MAIN活动。

if (resultCode == Activity.RESULT_OK){
    finish();
    startActivity(getIntent());
}

关于如何使MAIN活动的任何想法再次执行OnCreate()?

谢谢!

5 个答案:

答案 0 :(得分:1)

在OnResume()方法上写东西。当你返回主活动时,它会一直执行...详情请参阅活动生命周期..

答案 1 :(得分:0)

问题似乎是,如果重新启动当前活动,则会忽略setResult()。查看我的other post

答案 2 :(得分:0)

您的代码应如下所示:

Intent intent = new Intent(YourMainActivity.this, YourMainActivity.class);
startActivity(intent);
finish();

答案 3 :(得分:0)

将以下代码放入onBackPressed()方法内:

public void onBackPressed() {
    Intent intent= new Intent(MainActivity.this, MainActivity.class);
    startActivity(intent);
}

MainActivity.class是我的启动器活动。 现在,活动将返回到每次启动的相同内容。

答案 4 :(得分:0)

您可以重新启动该应用程序,然后确保再次执行onCreate(如果您不介意丢失Backstack)。我使用这种方法在我的应用中执行此操作:

    private void restartApp() {
        Intent intent =  getBaseContext().getPackageManager().getLaunchIntentForPackage(this.getPackageName());
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
    }