Android的activity

  1. Activity 是什么
  • 简述:
    1
    2
    3
    Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。
    每个 Activity 都会获得一个用于绘制其用户界面的窗口。窗口通常会充满屏幕,但也可小于屏幕并浮动在其他窗口之上。
    (类似UIViewController)
  • 创建:创建Activity必须要在AndroidManifest.xml声明Activity。

    1
    2
    3
    4
    5
    6
    7
    <manifest ... >
    <application ... >
    <activity android:name=".ExampleActivity" />
    ...
    </application ... >
    ...
    </manifest >
  • 设置intent-filter:创建项目时,自动创建 默认启动的MainActivity。

    1
    2
    3
    4
    5
    6
    <activity android:name=".MainActivity" android:icon="@drawable/app_icon">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
  1. Activity 启动:
  • 无回调:startActivity()。ExampleActivity是要启动的Activity

    1
    2
    Intent intent = new Intent(this, ExampleActivity.class);
    startActivity(intent);
  • 有回调:startActivityForResult()。需实现回调:onActivityResult

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ExampleRequestCode = 2;//请求码:用于区分哪个Activity的回调

    Intent intent = new Intent(this, ExampleActivity.class);
    startActivityForResult(intent,ExampleRequestCode);

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == ExampleRequestCode && resultCode == Activity.RESULT_OK) {
    }
    }

    -- ExampleActivity--
    resultCode = 1;//结果码:用于区分回调方法的状态
    void finishActivity() {
    Intent intent = new Intent();
    intent.putExtra("param", "1");
    setResult(resultCode,intent);
    finish();
    }
  • 传值:启动时可以用Intent和bundle传参数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    -- Intent -- 
    Intent intent = new Intent(this, ExampleActivity.class);
    intent.putExtra("age", 25);
    intent.putExtra("address", "guangzhou");
    startActivity(intent);

    ExampleActivity:
    Intent intent = getIntent();
    int age = intent.getIntExtra("age",0);
    String addressString = intent.getStringExtra("address");

    -- Bundle --
    Intent intent = new Intent(this, ExampleActivity.class);
    Bundle bundle = new Bundle();
    bundle.putInt("age", 25);
    bundle.putString("address", "guangzhou");
    intent.putExtras(bundle);
    startActivity(intent);

    ExampleActivity:
    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();
    int age = bundle.getInt("age");
    String addressString = bundle.getString("address");
  1. Activity 结束/关闭:

    1
    2
    3
    finish(); //关闭当前页面
    Activity.finish();//关闭某个Activity
    System.exit(0); //退出程序
  2. Activity生命周期:

Activity生命周期

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class ExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The activity is being created.
//首次创建 Activity 时调用。 您应该在此方法中执行所有正常的静态设置 — 创建视图、将数据绑定到列表等等(ViewDidLoad)
}
@Override
protected void onReStart() {
super.onStart();
//在 Activity 已停止并即将再次启动前调用。
}
@Override
protected void onStart() {
super.onStart();
// The activity is about to become visible.
//在 Activity 即将对用户可见之前调用。(ViewWillAppear)
}
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
//在 Activity 即将开始与用户进行交互之前调用。(ViewDidAppear)
}
@Override
protected void onPause() {
super.onPause();
// Another activity is taking focus (this activity is about to be "paused").
//当系统即将开始继续另一个 Activity 时调用。
此方法通常用于确认对持久性数据的未保存更改、停止动画以及其他可能消耗 CPU 的内容,诸如此类。
(ViewWillDisAppear)
}
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible (it is now "stopped")
//在 Activity 对用户不再可见时调用。(ViewDidDisAppear)
}
@Override
protected void onDestroy() {
super.onDestroy();
// The activity is about to be destroyed.
//在 Activity 被销毁前调用.(dealloc)
}
}

相关链接:https://www.cnblogs.com/jycboy/p/6367282.html