Android 如何重新启动主活动
我需要在子活动返回时更新主活动的内容。我在Android 如何重新启动主活动,android,android-activity,restart,Android,Android Activity,Restart,我需要在子活动返回时更新主活动的内容。我在onActivityResult()方法中尝试了以下代码,该方法对其他活动(非主活动)很好,但对主活动无效 if (resultCode == Activity.RESULT_OK){ finish(); startActivity(getIntent()); } 关于如何使主活动再次执行OnCreate()有什么想法吗 谢谢 在OnResume()方法上写入内容。当您返回到主活动时,它将始终执行。有关详细信息,请查看活动生命周期。问题
onActivityResult()方法中尝试了以下代码,该方法对其他活动(非主活动)很好,但对主活动无效
if (resultCode == Activity.RESULT_OK){
finish();
startActivity(getIntent());
}
关于如何使主活动再次执行OnCreate()有什么想法吗
谢谢 在OnResume()方法上写入内容。当您返回到主活动时,它将始终执行。有关详细信息,请查看活动生命周期。问题似乎是,如果当前活动重新启动,则会忽略setResult()
。请参见我的。您的代码应该如下所示:
Intent intent = new Intent(YourMainActivity.this, YourMainActivity.class);
startActivity(intent);
finish();
将以下代码放入onBackPressed()
方法中:
public void onBackPressed(){
意向意向=新意向(MainActivity.this,MainActivity.class);
星触觉(意向);
}
其中MainActivity.class
是我的启动程序活动。
现在活动将返回到每次启动的内容。您只需调用onCreate(null)恢复其顺序:startActivity()然后finish(),您的代码是正确的!!很抱歉,您在resultCode==Activity.RESULT\u OK(确定)中无法访问,请将日志放入并查看。如果要调用ActivityResult()或onCreate(),则颠倒顺序是行不通的。我验证了它是否到达代码,但怀疑该活动是主活动,因此其行为不同。我不确定调用onCreate(null)是否正确,因为我在某个地方读到它可能会破坏其他东西。无论如何我都要试试。还有其他想法吗?将问题中显示的代码移动到onResume()是灾难性的,因为如果最后调用finish(),应用程序甚至无法启动,而如果首先调用finish(),则不会调用onCreate()。另外,我只想在子活动返回OK结果的情况下刷新活动,而不是在所有情况下。这并没有解决实际问题-他们并没有试图专门处理回压。