1、定义
Activity是Android四大组件之一,通常一个用户界面对应一个Activity,用于处理与用户交互事件。
2、Activity的生命周期
onCreate() →(创建不可见)→ onStart() →(可见不可操作)→ onResume() →(可操作)→ onPause() →(可见不可操作)→ onStop() →(不可见未破坏)→ onDestory()
onRestart()
3、跳转
3.1 显式跳转
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
3.2 隐式跳转(可以跳转到其他程序的Activity)
修改Activity的配置信息
<activity android:name = "com.example.demo.SecondActivity">
<intent-filter>
<action android:name ="com.example.demo.SecondActivity"/>
<category android:name = "android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Intent intent = new Intent();
intent.setAction("com.example.demo.SecondActivity");
intent.setCategory("android.intent.category.DEFAULT");
startActivity(intent);
4、启动模式
4.1 Standard(默认)
每次激活Activity都会创建Activity实例并放入任务栈
4.2 SingleTask
任务栈中有该实例就会重用,不会重新创建实例。适用于浏览器的主界面
4.3 SingleTop
栈顶的Activity如果是该模式则会重用该实例。适用于新闻阅读类应用的内容页面
4.4 SingleInstance
会在新任务栈中创建该实例。适用于闹铃、视频播放器等
5、安全退出多个Activity的Application
5.1 记录每次打开的Activity,退出是关闭所有
5.2 发送一个特定广播,Activity接收到广播后关闭
5.3 在onActivityResult() 中递归关闭
5.4 finishAffinity();
6、两个Activity之间的数据传递
6.1 Intent
6.1.1 直接传递,intent.putExtra(key, value);
6.1.2 通过bundle,intent.putExtras(bundle);
传递的对象必须可序列化
6.2 BroadcastReceiver
6.3 ContentProvider
6.4 Application共享数据
6.5 静态数据
6.6 持久化数据
6.7 onActivityResult()
6.8 剪切板