Activity大全

2/13/2017来源:iOS开发人气:524

Activity的常用方法

生命周期相关方法

方法执行顺序 调用
onCreate() 创建的时候
onStart() 可见的时候
onResume() 获得焦点且可见的时候
onPause() 失去焦点且可见的时候
onStop() 不可见的时候
onDistory() 销毁的时候
onRestart() 被系统销毁,恢复的时候

关闭Activity的方法

方法 调用
activity.onFinish() 依次调用Activity生命周期相关方法正常关闭
android.os.PRocess.killProcess(android.os.Process.myPid()) 绕过Activityd的生命周期强制关闭

一个Activity打开另一个Activity的方法

方法 调用
startActivity(Intent) 打开一个Activity
startActivity(Intent,Bundle) 打开一个Activity并通过Bundle传递参数
startActivities(Intent[]) 打开多个Activity
startActivities(Intent[],Bundle) 打开多个Activity并通过Bundle传递参数
startActivityForResult(Intent,int requestCode) 打开一个Activity并获取返回结果,
startActivityForResult(Intent,int,Bundle) 返回结果通过onActivityResult()方法获取。

- Intent:组件之间调用需要使用Intent,可以调用setExtra()方法传递数据 - Intent[]:Intent数组,根据在数组中的顺序依次调用 - int requestCode:与onActivityResult(int requestCode, int resultCode, Intent data)中的requestCode对应 - Bundle 可以通过Bundle传递数据

一个Activity向另一Activity返回结果

步骤 方法 调用
1 setResult(int resultCode) 返回结果码
1 setResult(int resultCode,Intent) 返回结果码和通过Intent传递数据
2 finish() 关闭当前Activity

一个Activity打开另一个Activity,然后获取返回结果

方法 调用
onActivityResult(int requestCode, int resultCode, Intent data)

通过startActivityForResult()方法启动另外一个Activity才会调用onActivityResult(),startActivity()方法和startActivities()不会调用此方法。 - int requestCode:通过 startActivityForResult(Intent,int requestCode)设置的请求码 - int resultCode:通过setResult(int resultCode)设置的返回码 - Intent

一个Activity获取另一个Activity返回结果

步骤 方法 调用
1 activityA.startActivityForResult(Intent,int requestCode) Activity调用
2 activityB.setResult(int resultCode) 返回结果码
2 activityB.setResult(int resultCode,Intent) 返回结果码和通过Intent传递数据
3 activityB.finish() 关闭当前Activity
4 activityA.onActivityResult(int requestCode, int resultCode, Intent) Intent是setResult()方法返回的Intent

- int requestCode 请求码 - int resultCode 结果码