DJa*_*ayC 140 lifecycle android android-intent
我正在使用singleTop Activity来通过搜索对话框接收意图onNewIntent().
我注意到的是onPause()之前调用过onNewIntent(),然后调用它onResume().视觉:
onPause()onNewIntent()onResume()问题是我有注册的监听器onResume()被删除onPause(),但在onNewIntent()通话中需要它们.有没有一种标准方法可以让这些听众可用?
Rod*_*dja 281
onNewIntent()是指已经在堆栈中的其他位置运行的singleTop活动的入口点,因此无法调用onCreate().从观活动周期点它因此,需要调用onPause()之前onNewIntent().我建议你重写你的活动,不要在里面使用这些听众onNewIntent().例如,大多数情况下我的onNewIntent()方法看起来像这样:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// getIntent() should always return the most recent
setIntent(intent);
}
Run Code Online (Sandbox Code Playgroud)
所有安装逻辑中发生的onResume()利用getIntent().
Paw*_*ari 16
注意:从另一个方法调用生命周期方法不是一个好习惯.在下面的示例中,我试图实现无论您的Activity类型如何,都将始终调用onNewIntent.
除了第一次创建活动时,OnNewIntent()总是被调用singleTop/Task活动.那时onCreate被称为提供解决方案,在这个线程上询问的几个查询.
您可以通过将onNewIntent放入onCreate方法来调用onNewIntent
@Override
public void onCreate(Bundle savedState){
super.onCreate(savedState);
onNewIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
//code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89403 次 |
| 最近记录: |