onNewIntent()生命周期和注册监听器
我使用singleTop Activity通过onNewIntent()
从搜索对话框接收意图。
我注意到onPause()
在onNewIntent()
之前onNewIntent()
,然后调用onResume()
。 视觉:
onPause()
onNewIntent()
onResume()
问题是我有在onResume()
中注册的监听器在onPause()
中被移除,但是它们在onNewIntent()
调用中需要。 有没有一种标准的方法让这些听众可用?
onNewIntent()
意味着已经在堆栈中的其他位置运行的singleTop活动的入口点,因此无法调用onCreate()
。 从活动生命周期的角度来看,因此需要在onNewIntent()
之前调用onPause()
onNewIntent()
。 我建议你重写你的活动,不要在onNewIntent()
使用这些监听器。 例如,大部分时间我的onNewIntent()
方法看起来像这样:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// getIntent() should always return the most recent
setIntent(intent);
}
通过利用getIntent()
在onResume()
发生所有设置逻辑。
除了首次创建活动时,OnNewIntent()始终会被调用for singleTop / Task活动。 当时onCreate被调用。
您可以通过将它放入onCreate方法来调用onNewIntent
@Override
public void onCreate(Bundle savedState)
{
super.onCreate(savedState);
onNewIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
//code
}
链接地址: http://www.djcxy.com/p/88707.html
上一篇: onNewIntent() lifecycle and registered listeners
下一篇: How to start a new activity when screen orientation changes? Android