活动(Activity)

1.活动是一种包含用户界面的组件,主要用于和用户进行交互

2.所有活动都要在AndroidManifest文件中注册,注册声明放在,标签添加action和category声明则可以使活动成为主活动。指定活动标题栏的内容。

3.intent:指明当前活动想要执行的动作,还可以用于不同组件之间传递数据。

1).显示Intent

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);

2).隐式Intent:在下配置的内容,指定当前活动能够响应的action和category,两者内容同时匹配,这个活动才能响应Intent。每个Intent只能响应一个action,能指定多个category。

Intent intent = new Intent("com.example.activitytext.ACTION_START");
startActivity(intent);

intent还可以启动其他程序的活动。如下启动一个浏览器打开一个网页

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://wwww.baidu.com"));
startActivity(intent);

3).活动传递数据:使用intent,intent.putExtra();接受数据使用getintent(),intent.get…Extra().

4)返回数据给上一个活动。startActivityForResult(),启动下一个活动,重写onActivityResult()方法根据requestCode判断数据来源,获取数据。在被启动活动中使用setResult()返回结果。

*onBackPressed()返回键。

4.活动的生命周期:Android是使用Task管理活动的,一个任务就是一组放在栈里的集合。称为返回栈,后进先出。系统总是显示栈顶的活动给用户。

5.活动状态。

运行状态:处于栈顶

暂停状态:不处于栈顶但是仍然可见,活动完全存活,但不能进行交互(对话框形式)

停止状态:不处于栈顶并且完全不可见。

销毁状态:从返回栈移除后成为销毁状态。

6.活动生存期:

onCreate();第一次创建时调用

onStart():由不可见变为可见时调用。

onResume这个方法在活动准备好和用户进行交互时调用,活动处于栈顶,并且处于运行状态。

onPause。准备去启动或者恢复另一个活动时调用。

onStop():不可见时调用。

onDestory:被销毁时调用。

onRestart():由停止变为运行状态之前调用。

完整的生存期:onCreate–onDestory

可见生存期:onStart – onStop()

前台生存期:onResume – onPause()

这里写图片描述

7.活动被回收时重新返回调用的是onCreate(),不过数据会丢失.onSaveInstancestate方法会保证活动前被调用,可以使用Bundle保存数据。

8.活动的启动模式:standard,singleTop,singleTask,singleInstance.可以在AndroidManifest.xml给标签指定launchMode属性选择启动模式。

standrad:默认启动模式。每启动一次创建活动的一个实例处于栈顶。

singleTop:在启动活动时如果发现栈顶已经是该活动,则认为可以直接使用,不再创建新的实例

singleTask:每次启动时首先在返回栈中检查是否存在该活动的实例如果发现已经存在则直接使用,并把活动之上的所有活动出栈,没有就创建一个新的实例。

singleInstance:启动一个新的返回栈来管理这个活动,解决共享活动的问题,当一个返回栈空了的时候就显示另一个返回栈的栈顶活动。

9.随时随地的退出程序在:使用一个list集合类对所有活动进行管理,使用foreach和finish销毁所有活动。重写OnDestroy方法指定销毁时从集合删除

启动活动的最佳写法

可以明确被启动活动的需要的数据。

public class SecondActivity extends Activity{
public static void action(Context context,String data){
    Intent intent = new Intent(context,SecondActivity.class);
    intent,putExtra("data",data)
    context.startActivity(intent);
}
}
//启动活动
SecondActivity.actionStart(FirstActivity.this,"data");

猜你喜欢

转载自blog.csdn.net/m0_38089373/article/details/75807551