我有叫另外一个通过调用startActivity()
的活动,一段时间后onSaveInstanceState(Bundle outState)
叫我设置一个布尔valeu对onCreate(Bundle savedInstanceState)
但是当这种方法被称为savedInstanceState
来自空恢复。我已经在网上搜索了一个答案,但没有找到我的案例。的Android - savedInstanceState空当parentActivityName充满
这里的onSaveInstanceState
方法:
@Override
protected void onSaveInstanceState(Bundle outState) {
outState = new Bundle();
outState.putBoolean(Constants.MAIN_ACTIVITY_STATE_RECREATED, true);
super.onSaveInstanceState(outState);
}
的onCreate
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle(R.string.activity_main);
if (savedInstanceState!=null && savedInstanceState.getBoolean(Constants.MAIN_ACTIVITY_STATE_RECREATED, false)){
return;
}
//DO SOME STUFF
}
而这里的活动我AndroidManifest声明:
<activity android:name=".MainActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
这就是所谓的活动:
<activity android:name=".PhotoUserActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden"
android:parentActivityName=".MainActivity">
</activity>
如果我从第二个活动的声明中删除parentActivityName,并自己创建“后退按钮”,则第一个Activity的onCreate永远不会被调用。
感谢您的帮助!
你有解决它?我有同样的麻烦:http://stackoverflow.com/q/41578258/1639556但我不创建nw捆绑实例。 –
@LeosLiterak不幸的是,我用另一种方法来实现我的目标 –