`
天天向上1989
  • 浏览: 418335 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

【转】onNewIntent 什么时候调用

阅读更多

protected void  onNewIntent  (Intent  intent)

Since: API Level 1

This is called for activities that set launchMode to "singleTop" in their package, or if a client used theFLAG_ACTIVITY_SINGLE_TOP  flag when calling startActivity(Intent) . In either case, when the activity is re-launched while at the top of the activity stack instead of a new instance of the activity being started, onNewIntent() will be called on the existing instance with the Intent that was used to re-launch it.

An activity will always be paused before receiving a new intent, so you can count on onResume()  being called after this method.

Note that getIntent()  still returns the original Intent. You can use setIntent(Intent)  to update it to this new Intent.

 

在IntentActivity中重写下列方法:onCreate onStart onRestart  onResume  onPause onStop onDestroy  onNewIntent
一、其他应用发Intent,执行下列方法:
I/@@@philn(12410): onCreate
I/@@@philn(12410): onStart
I/@@@philn(12410): onResume

发Intent的方法:
Uri uri = Uri.parse("philn://blog.163.com");
Intent it = new Intent(Intent.ACTION_VIEW, uri);    
startActivity(it);

二、接收Intent声明:
 <activity android:name=".IntentActivity" android:launchMode="singleTask"
                  android:label="@string/testname">
             <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="philn"/>
            </intent-filter>
  </activity>

三、如果IntentActivity处于任务栈的顶端,也就是说之前打开过的Activity,现在处于
I/@@@philn(12410): onPause
I/@@@philn(12410): onStop 状态的话
其他应用再发送Intent的话,执行顺序为:
I/@@@philn(12410): onNewIntent
I/@@@philn(12410): onRestart
I/@@@philn(12410): onStart
I/@@@philn(12410): onResume

分享到:
评论

相关推荐

    onNewIntent

    3. **单任务模式(SingleTask)**:Activity在任务栈中只有一个实例,当新Intent到来时,如果任务栈中已经存在该Activity,则会调用`onNewIntent()`,并且移除该Activity之上所有其他Activity。 4. **单栈顶模式...

    onNewIntent方法的使用

    3. **FLAG_ACTIVITY_SINGLE_TOP**:如果在启动Intent时添加了`FLAG_ACTIVITY_SINGLE_TOP`标志,即使Activity不在栈顶,但若在栈中存在,系统也会调用`onNewIntent()`,而不是创建新的实例。 了解了`onNewIntent()`...

    activity的四种启动模式和onNewIntent的关系

    而在后续通过Intent启动时,会调用`onNewIntent()`,随后调用`onRestart()`、`onStart()`和`onResume()`。 需要注意的是,当Activity接收到新的Intent时,应当使用`setIntent(intent)`方法更新当前Activity的Intent...

    android onnewintent

    当一个活动已经启动并在任务栈中存在时,如果又有新的意图(Intent)发送给该活动,则不会创建新的活动实例,而是通过调用`onNewIntent()`方法来处理新意图。这意味着如果活动已经处于暂停或停止状态,而此时有新的...

    Android onNewIntent()触发机制及注意事项

    1. **数据处理**: 由于`onNewIntent()`可能不会总是被调用(如Activity重新创建时),所以处理Intent中的数据应同时在`onCreate()`和`onNewIntent()`中进行,以确保数据始终被正确处理。 ```java public void ...

    activity跨进程调用

    - **SingleTask**:如果目标Activity已经存在,那么它的任务栈会被带到前台,Activity实例不会重建,onNewIntent()会被调用。 - **SingleInstance**:在单独的任务栈中启动Activity,且该任务栈中只有这一个...

    Activity之间的调用

    2. 使用startActivityForResult()时,应确保目标Activity在适当的时候调用setResult()返回结果,且调用finish()结束自身。 3. 对于大容量数据传递,考虑使用ContentProvider或自定义Binder进行更高效的数据交换。 4....

    火山安卓网页调用火山应用并传入参数.rar

    在这个主题中,“火山安卓网页调用火山应用并传入参数”指的是从一个Android设备上的网页环境中启动火山应用,并且能够传递参数给这个应用。这涉及到Web和原生应用之间的交互,以及数据的传输和处理。 首先,我们...

    Activity的四种启动模式

    - **onNewIntent()调用**:如果重用了已存在的实例,会调用`onNewIntent()`方法来处理新的Intent数据。 - **资源节约**:相较于Standard模式,SingleTop模式可以避免不必要的实例创建,从而节省资源。 **应用场景**...

    android nfc 读写demo

    1.支持android设备读取nfc贴纸数据 2.支持向nfc卡中写入相关的数据 3.操作非常简单,只需要在在Activity中的onResume、onPause、onDestroy、onNewIntent方法中调用nfc工具类的相关方法就ok了,完整的步骤请查看demo

    3、Android调用Unity插件相关1

    Android可以启动一个新的Activity并通过Intent传递数据,Unity可以通过UnityPlayerActivity类的onNewIntent方法捕获这个Intent。这种方式通常用于打开特定的系统功能,如分享、地图导航等。 4. 文件共享: 如果...

    Android调用系统的浮动搜索框实现搜索功能

    本文将详细介绍如何在Android中调用系统的浮动搜索框来实现这一功能,以此来帮助开发者构建高效、直观的搜索界面。 首先,我们要明白系统浮动搜索框(通常称为全局搜索)是Android系统提供的一种全局搜索机制,它...

    ActivityDemo.7z

    2. **singleTop**:如果Activity已经在任务栈顶,那么新启动的请求不会创建新的实例,而是调用onNewIntent()方法。在这种模式下,ActivityB并未提及,所以可能在其他场景下使用。 3. **singleTask**:此模式下,...

    My Application.zip

    这时,会调用onNewIntent()方法传递新的Intent,而不会调用onCreate()、onStart()。如果栈中没有该Activity,系统则会创建新实例并执行正常的生命周期方法。 3. SingleTask(单任务模式) SingleTask模式下,系统会...

    初中级Android开发社招面试之Activity篇.pdf

    - `singleTask`(栈内复用模式):如果已存在实例,则复用并调用`onNewIntent()`,否则创建新的任务栈和Activity实例。 - `singleInstance`(单实例模式):Activity独占一个任务栈,仅有一个实例,也调用`...

    2020美团Android面试真题解析1

    - **singleTask**: 同一任务栈内只有一个Activity实例,如果栈中没有,新创建并压入栈顶,如果有,移除栈中所有在其之上的Activity并调用`onNewIntent()`。 - **singleInstance**: 创建独立的任务栈,无论当前...

    Android编程实现两个Activity相互切换而不使用onCreate()的方法

    当从B到C或C到B的切换发生时,系统会调用`onNewIntent()`而不是`onCreate()`,在这里可以获取新的Intent并更新界面。例如: ```java @Override protected void onNewIntent(Intent intent) { super.onNewIntent...

    Android Activity设置相同的action进行判断源码.rar

    1. **重写onNewIntent()**: 当一个已存在的Activity被新的Intent唤醒,并且设置了相同的Action,系统会调用onNewIntent()方法而不是重新创建一个新的Activity实例。开发者可以在这里根据Intent的其他属性(如Data、...

    Android 返回键退出程序的两种方式-IT计算机-毕业设计.zip

    如果这个Activity已经是栈顶的,`onNewIntent()`方法会被调用,这样你可以在该方法中处理退出逻辑。例如: ```java Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_...

    android activity4种启动模式测试

    每个Activity都配置不同的启动模式,通过按钮或Intent切换启动不同Activity,观察它们在任务管理器中的行为,以及onCreate()、onStart()、onResume()和onNewIntent()等生命周期方法的调用情况。通过这种方式,你可以...

Global site tag (gtag.js) - Google Analytics