在完成我们目前正在进行的活动后,是否有可能重新触发我们要返回的OnCreate()
Activity
方法?
我尝试了startActivityForResult()
方法,但这不是一个好的解决方案,因为它会混淆活动的backstack
。
此外,我无法使用活动的onResume()
方法,因为我需要执行的功能(主题更改)只能在onCreate()
上完成才能正常工作。
对此有何建议?我错过了什么吗?谢谢。
答案 0 :(得分:0)
我不确定您为什么要重新创建活动。 但我认为调用这种方法可以帮助你:
reCreate();
来自http://developer.android.com
public void recreate()在API级别11中添加
导致使用新实例重新创建此活动。结果 基本上与由于a创建Activity时相同的流程 配置更改 - 当前实例将通过它 生命周期到onDestroy(),然后在它之后创建一个新实例。
您也可以尝试这种方式:
startActivity(getIntent());
finish();
答案 1 :(得分:-1)
如果我们直接从onActivityResult()方法调用onCreate()就可以。
但这不建议打破Android的活动生命周期
如果你真的想在onCreate()中做一些有用的任务,那么你可以 在onResume()方法
中执行此操作
根据您的要求,我了解您希望在子活动完成后为活动视图设置新主题。
对于这种情况,您可以使用片段。您只需在onResume()
方法
对于片段创建:How to create Fragment
- 醇>
在onResume()中,将
content_frame
替换为需要更改主题的新片段
更新:
来自 MainActivity.java :
startActivityForResult( /* parameters for calling SecondActivity*/ );
finish();
这样,您的调用活动(MainActivity.java)就完成了。因此,当SecondActivity完成时,焦点将出现在MainActivity.java的onActivityResult()上,而onCreate()也将被称为,因为它已经完成