protected void
onNewIntent
(Intent
intent)
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
分享到:
相关推荐
3. **单任务模式(SingleTask)**:Activity在任务栈中只有一个实例,当新Intent到来时,如果任务栈中已经存在该Activity,则会调用`onNewIntent()`,并且移除该Activity之上所有其他Activity。 4. **单栈顶模式...
3. **FLAG_ACTIVITY_SINGLE_TOP**:如果在启动Intent时添加了`FLAG_ACTIVITY_SINGLE_TOP`标志,即使Activity不在栈顶,但若在栈中存在,系统也会调用`onNewIntent()`,而不是创建新的实例。 了解了`onNewIntent()`...
而在后续通过Intent启动时,会调用`onNewIntent()`,随后调用`onRestart()`、`onStart()`和`onResume()`。 需要注意的是,当Activity接收到新的Intent时,应当使用`setIntent(intent)`方法更新当前Activity的Intent...
当一个活动已经启动并在任务栈中存在时,如果又有新的意图(Intent)发送给该活动,则不会创建新的活动实例,而是通过调用`onNewIntent()`方法来处理新意图。这意味着如果活动已经处于暂停或停止状态,而此时有新的...
1. **数据处理**: 由于`onNewIntent()`可能不会总是被调用(如Activity重新创建时),所以处理Intent中的数据应同时在`onCreate()`和`onNewIntent()`中进行,以确保数据始终被正确处理。 ```java public void ...
- **SingleTask**:如果目标Activity已经存在,那么它的任务栈会被带到前台,Activity实例不会重建,onNewIntent()会被调用。 - **SingleInstance**:在单独的任务栈中启动Activity,且该任务栈中只有这一个...
2. 使用startActivityForResult()时,应确保目标Activity在适当的时候调用setResult()返回结果,且调用finish()结束自身。 3. 对于大容量数据传递,考虑使用ContentProvider或自定义Binder进行更高效的数据交换。 4....
在这个主题中,“火山安卓网页调用火山应用并传入参数”指的是从一个Android设备上的网页环境中启动火山应用,并且能够传递参数给这个应用。这涉及到Web和原生应用之间的交互,以及数据的传输和处理。 首先,我们...
- **onNewIntent()调用**:如果重用了已存在的实例,会调用`onNewIntent()`方法来处理新的Intent数据。 - **资源节约**:相较于Standard模式,SingleTop模式可以避免不必要的实例创建,从而节省资源。 **应用场景**...
1.支持android设备读取nfc贴纸数据 2.支持向nfc卡中写入相关的数据 3.操作非常简单,只需要在在Activity中的onResume、onPause、onDestroy、onNewIntent方法中调用nfc工具类的相关方法就ok了,完整的步骤请查看demo
Android可以启动一个新的Activity并通过Intent传递数据,Unity可以通过UnityPlayerActivity类的onNewIntent方法捕获这个Intent。这种方式通常用于打开特定的系统功能,如分享、地图导航等。 4. 文件共享: 如果...
本文将详细介绍如何在Android中调用系统的浮动搜索框来实现这一功能,以此来帮助开发者构建高效、直观的搜索界面。 首先,我们要明白系统浮动搜索框(通常称为全局搜索)是Android系统提供的一种全局搜索机制,它...
2. **singleTop**:如果Activity已经在任务栈顶,那么新启动的请求不会创建新的实例,而是调用onNewIntent()方法。在这种模式下,ActivityB并未提及,所以可能在其他场景下使用。 3. **singleTask**:此模式下,...
这时,会调用onNewIntent()方法传递新的Intent,而不会调用onCreate()、onStart()。如果栈中没有该Activity,系统则会创建新实例并执行正常的生命周期方法。 3. SingleTask(单任务模式) SingleTask模式下,系统会...
- `singleTask`(栈内复用模式):如果已存在实例,则复用并调用`onNewIntent()`,否则创建新的任务栈和Activity实例。 - `singleInstance`(单实例模式):Activity独占一个任务栈,仅有一个实例,也调用`...
- **singleTask**: 同一任务栈内只有一个Activity实例,如果栈中没有,新创建并压入栈顶,如果有,移除栈中所有在其之上的Activity并调用`onNewIntent()`。 - **singleInstance**: 创建独立的任务栈,无论当前...
当从B到C或C到B的切换发生时,系统会调用`onNewIntent()`而不是`onCreate()`,在这里可以获取新的Intent并更新界面。例如: ```java @Override protected void onNewIntent(Intent intent) { super.onNewIntent...
1. **重写onNewIntent()**: 当一个已存在的Activity被新的Intent唤醒,并且设置了相同的Action,系统会调用onNewIntent()方法而不是重新创建一个新的Activity实例。开发者可以在这里根据Intent的其他属性(如Data、...
如果这个Activity已经是栈顶的,`onNewIntent()`方法会被调用,这样你可以在该方法中处理退出逻辑。例如: ```java Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_...
每个Activity都配置不同的启动模式,通过按钮或Intent切换启动不同Activity,观察它们在任务管理器中的行为,以及onCreate()、onStart()、onResume()和onNewIntent()等生命周期方法的调用情况。通过这种方式,你可以...