android 四大组件之activity(活动)

四大组件之一,是用户唯一可以看到的东西,主要用来跟用户进行交互,通过setContextView(view);来显示布局。


生命周期

当第一次调用一个Activity就会执行onCreate方法

当Activity处于可见状态的时候就会调用onStart方法

当Activity可以得到用户焦点的时候就会调用onResume方法

当Activity没有被销毁的时候重新调用这个Activity就会调用onRestart方法

当Activity被遮挡住的时候就会调用onPause方法

当Activity处于不可见状态的时候就会调用onStop方法

当Activity被销毁时会调用onDestory方法


activity转到下一个活动  通过意图  Intent 

Intent intent=new Intent(mainactivity.this,目标activity.class);

startActivity(intent)

一个新的activity 需要在Androidmanifest中注册  有两种注册方式   一种显示一种隐式

显示:《application》中<activity android:name=".新activity"></activity>


隐式:如果是隐式的话那么就不能用上面拿个Intent 的方法了我们需要换一个

Intent intent=new Intent();     intent.setAction("你自己起名字") 

startActivity(intent)

<activity android:name=".新activity">

<intent-filter>

<action android:name="你自己起名字"> //这个名字最好起的规范点

<category android:name="android.intent.category.DEFAULT">

</intent-filter>

</activity>


在这里通过隐式Intent可以启动很多其他程序的应用   如

<category android:name="android.intent.action.DIAL">表示打电话的意图,系统会找到能处理这个意图的Activity,例如调出拨号面板。

Intent intent =new Intent(Intent.ACTION_DIAL);

// 或者Intent intent = new Intent("android.intent.action.DIAL");

// Intent.ACTION_DIAL是内置常量,值为"android.intent.action.DIAL"

startActivity(intent);

可以通过finish()推出activity 但是并没有销毁activity  只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理;当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放。


向下一个activity 传递数据

Intent intent=new Intent(xxxx.this,xxx.class);

intent.putExtra("key",value);

startActivity(intent);

获取数据

Intent intent=getIntent();

intent.getStringExtra("key");

向上一个活动返回数据

Intent i=new Intent(xxx.this,xxx.class);

StartActivityForResult(i,1);//通过这个方法来启动  传入一个数值

在下一个服务器中   返回事件中写  

Intent int=new Intent();//构建Intent,但是只是用来传递数据,没有任何意图

intent.putextra("key",value);

setResult(RESUTL_OK,Intent);  finish():  //把数值返回去

在上一个活动中重写onActivityResult();

方法中   switch(requestCode){

case 1:

if(resultCode==RESULT_OK){

String returnedDate=data.getStringExtra("key");

}break;

}


当活动进入停止状态也就是  onStop()那么它有可能被系统回收,有时候我们在活动中有一些临时数据需要如果活动被回收了那么数据也就不再存在,所以,在活动中有一个onSaveInstanceState()方法,它会在活动被销毁前执行,返回一个bundle 所以我们可以用这个bundle来存储临时数据。

有时候我们会有这样的需求,看书时回到上一次退出程序的页面,这个需求我们也可以通过onSaveInstanceState()实现,只不过不是存在bundle中,而是将他存在文件,或者数据库中,在每次启动程序的适合,恢复上次退出的样子

活动的4种启动模式

第一种就是我们最常用的Standard他是活动的默认启动方式,在不指定显示的情况下都是用这种,这种模式下,每次通过Intent启动一个活动时都会启动一个活动。

第二种SingleTop,在Standard默认的启动模式下,如果活动在栈定了再次启动是还会创建一个新的活动,SingleTop则不同,如果活动在栈定了,你在去创建这个活动,他不会再去创建不执行onCreate方法

第三种singleTask,在SingleTop启动模式下,如果活动不在栈顶,那么还是可以创建活动,那么在singleTask模式下,每次启动活动时,会在栈中查找,有没有这个活动,如果有这个活动,那么就直接使用这个活动实例,这个时候不会在调用onCreate方法,并且将这个活动之上的活动全部踢出栈,如果没有发现,那么就创建一个新的活动,这个时候,只要按一下back键就可以推出程序了

第四种singlelnstance,这种启动模式死最复杂的一种了,使用这种模式会启动一个新的栈开管理这个活动,这样子有什么意义呢?这种模式一般是用来给其它程序访问此活动

修改模式需要在AndroidManifest中  <activity>android:launchMode="xxxx"指定启动模式

活动实践技巧

知道自己在哪个activity下面 ,创建一个TextActivity继承Activity 重写onCreate()打印Log.d("XXX",getClass.getSimpleName());  然后把将需要知道的activity继承TextActivity();所以当每次执行时候就会调用Log.d();就能知道在哪个Activity

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容