在Android应用程序开发的时候,从一个Activity启动另一个Activity并传递一些数据到新的Activity上非常简单,但是当您需要让后台运行的Activity回到前台并传递一些数据可能就会存在一点点小问题。
首先,在默认情况下,当您通过Intent启到一个Activity的时候,就算已经存在一个相同的正在运行的Activity,系统都会创建一个新的Activity实例并显示出来。为了不让Activity实例化多次,我们需要通过在AndroidManifest.xml配置activity的加载方式(launchMode)以实现单任务模式,如下所示:
1
|
<activity
android:label= "@string/app_name" android:launchmode= "singleTask" android:name= "Activity1" >
|
launchMode为singleTask的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onCreate方法,而是调用onNewIntent方法,如下所示:
1
|
protected void onNewIntent(Intent
intent) {
|
2
|
super .onNewIntent(intent);
|
不要忘记,系统可能会随时杀掉后台运行的Activity,如果这一切发生,那么系统就会调用onCreate方法,而不调用onNewIntent方法,一个好的解决方法就是在onCreate和onNewIntent方法中调用同一个处理数据的方法,如下所示:
01
|
public void onCreate(Bundle
savedInstanceState) {
|
02
|
super .onCreate(savedInstanceState);
|
03
|
setContentView(R.layout.main);
|
07
|
protected void onNewIntent(Intent
intent) {
|
08
|
super .onNewIntent(intent);
|
13
|
private void processExtraData(){
|
14
|
Intent
intent = getIntent();
|
分享到:
相关推荐
在 Android 中,不同的 Activity 实例可能运行在一个进程中,也可能运行在不同的进程中。因此我们需要一种特别的机制帮助我们在 Activity 之间传递消息。
android生命周期管理:重置一个Activity
Android源程序实现两个Activity之间的跳转
android生命周期管理:启动一个Activity
android中常用的不同Activity之间的通信方式。
Android中两个子线程的通信demo
android生命周期管理:暂停和恢复Activity
例子主要包括Fragment与Activity之间的通信,代码中还给出了两者之间通信具体调用的函数及其顺序。
android 实例 Activity 之间通过 Handler 通信
在Android内实现各个Activity之间的转换
android不同Activity之间的通信方式,几秒钟教会你Android中集中常用的Activity通信
service在后台下载,与前台多个activity通信,结果发现有一个坑,找到原因后,跟大家一起分享。
Activity之间通信及其生命周期变化,及回传参数等基础知识点
描述:app有两个: localApp, RemoteApp. 实现功能: 通过localApp远程启动RemoteApp,让RemoteApp处理业务流程。 技能:1:实现跨应用的开启服务,2:当服务开启后,远程的AndroidManifest.xml文件被加载,这时候,...
A->b->c,C与A之间的通信,基于观察者模式.
android生命周期管理:重启或停止一个Activity
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
Android安全开发基础: 四大组件之活动(Activity) Android安全开发基础: 四大组件之服务 (Service) Android安全开发基础: 四大组件之广播(Broadcast Receiver) Android安全开发基础: 四大组件之内容提供器...
Android应用开发多个activity完全退出程序方法,亲测可用
实验二 Activity组件通信 一、实验目的及要求 (1) 掌握显示启动和隐式启动的方式 (2) 掌握Activity间的数据通信 二、实验内容及步骤 任务:根据下述要求实现对应程序 1、 完成启动界面的设计,要求采用合理布局...