Activity生命周期和Activity之间传参
来源:互联网 发布:淘宝联盟一键同步功能 编辑:程序博客网 时间:2024/06/06 05:10
Activity的应用程序的生命周期是被统一掌控的,因为当你在进行一应用程序是,可能会有人发短信进来,或者有谁打电话给你,抑或该应用程序又调用了 其他应用程序,这时,系统将会中断当前的程序,优先服务短信、电话或是被调用的程序。还有,系统不允许占用过多的资源,所以当资源不足是也有可能被结束。
public class MyActivity extends Activity {
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
1.最容易被清掉的是empty process,空进程是指那些没有Activity与之绑定,也没有任何应用程序组件(如Services或者IntentReceiver)与之绑定的进程,也就是说在这个process中没有任何activity或者service之类的东西,它们仅仅是作为一个cache,在启动新的Activity时可以提高速度。它们是会被优先清掉的。因此建议,我们的后台操作,最好是作成Service的形式,也就是说应该在Activity中启动一个Service去执行这些操作。
2.接下来就是background activity了,也就是被stop掉了那些activity所处的process,那些不可见的Activity被清掉的确是安全的,系统维持着一个LRU列表,多个处于background的activity都在这里面,系统可以根据LRU列表判断哪些activity是可以被清掉的,以及其中哪一个应该是最先被清掉。不过,文档中提到在这个已被清掉的Activity又被重新创建的时候,它的onCreate会被调用,参数就是onFreeze时的那个Bundle。不过这里有一点不明白的是,难道这个Activity被killed时,Android会帮它保留着这个Bundle吗?
3.然后就轮到service process了,这是一个与Service绑定的进程,由startService方法启动。虽然它们不为用户所见,但一般是在处理一些长时间的操作(例如MP3的播放),系统会保护它,除非真的没有内存可用了。
4.接着又轮到那些visible activity了,或者说visible process。前面也谈到这个情况,被Paused的Activity也是有可能会被系统清掉,不过相对来说,它已经是处于一个比较安全的位置了。
5.最安全应该就是那个foreground activity了,不到迫不得已它是不会被清掉的。这种process不仅包括resume之后的activity,也包括那些onReceiveIntent之后的IntentReceiver实例。
如果要从Target往TestBundle回传数据/信息, 可以在TestBundle里面:
startActivityForResult(intent, 1333); // 1333是request code
然后在Target里面, 回传的时候:
Intent data = new Data();
data.putExtra("msg", "my message");
setResult(RESULT_OK, data);
finish();
在TestBundle里出来传回来的数据/信息:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String msg = data.getExtras().getString("msg");
// ...
}
Intent intent = new Intent();
intent.putExtra("name", editText.getText().toString());
intent.setClass(ActivityLifecycle.this, AlertDialog.class);
通过setClass方法,直接告诉Android,此Intent交由AlertDialog处理,也可以通过setComponent()、setClassName()等方法来做同样的事情。
当一个Intent的所有说明,都被Activity的intent-filter接受时,这个Activity就是候选人之一。如果有多个Activity成为候选人,那么在程序运行的时候Android提示你从多个Activity中手动选择一个来作为最终的intent接收执行者。
- Activity生命周期和Activity之间传参
- Activity和Fragment生命周期之间的关系
- Activity生命周期和Activity页面之间数据传递
- Activity生命周期 与 Activity 之间的通信
- Fragment和Activity之间的传参
- activity之间跳转生命周期浅析
- activity之间参数传递&&获取activity返回值&&activity生命周期
- Activity生命周期,启动Activity,以及Activity之间数据的传递
- activity和fragment生命周期
- Fragment和Activity生命周期
- Activity和Fragment生命周期
- Activity和Fragment生命周期
- activity和fragment生命周期
- Activity和Fragment生命周期
- Activity和Fragment生命周期
- fragment和activity生命周期
- activity和fragment生命周期
- Activity和Fragement生命周期
- vim 编辑 java javascript 自动补全{([ 以及输入分号时在行尾加分号
- Request获取URL各种信息的方法及Request.UrlReferrer的使用
- Java类库和常用类库介绍——序
- 谈“点到直线距离公式”的向量推导方法
- c++标准库简介
- Activity生命周期和Activity之间传参
- 页面传值验证(防SQL注入)
- Nutch插件机制和Nutch一个插件实例
- Java.lang包——Object类
- C++实现Factory Method模式
- 在Delphi中如何使用RC文件中的字符串表
- 在ASP.NET中重写URL
- Form Validation CodeIgniter
- 困倦 -- 在它该出现的时候出现就是一种享受,在不该出现的时候出现就是一种折磨。