Activity是四大组件之一,一个App可以有0个或多个Activity
它是一个用来展示用户界面以及与用户进行交互操作的组件
当在一个Activity中按下返回时,Android OS会自动销毁Activity对象
当在一个Activity中启动另外一个Activity时,当前Activity不会被销毁,而是会被压入Activity栈中
Activity跳转的其他Activity可以不是当前Application中的Activity
启动跳转Activity的两种方式:
1,显式:
a, Intent intent=new Intent(MainActivity.this,BActivity.class);
startActivity(intent);
b, Intent intent=new intent();
intent.setClassName("com.weiwei.qianfeng","com.weiwei.qianfeng.CActivity");
startActivity(intent);
2,隐式
Intent intent=new Intent();
intent.setAction("action_weiwei_qianfeng");
//intent.addCategory("com.weiwei.qianfeng.category");
startActivity(intent);
在清单文件中注册方法,显式的注册方法:
a ,<activity android:name=".BActivity"></activity>
b , <activity android:name=".CActivity"></activity>
隐式的注册方法:
<activity android:name=".DActivity"
android:label="DActivity">
<intent-filter>
<action android:name="action_weiwei_qianfeng"/>
// <category android:name="com.weiwei.qianfeng.category"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".EActivity"
android:label="EActivity"
>
<intent-filter>
<action android:name="action_weiwei_qianfeng"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Activity之间的传值(Activity之间的通信)
1,使用Application实现数据共享
使用方法:
1、自定义MyApplication继承Application;
2、清单文件中的<application></application>中注册信息
3,、MainAactivity.java中使用getApplication()得到MyApplication(MyApplication myapplication=(MyApplication)getApplication();)
2,使用Intent将值传递给Activity
使用方法:
1、定义一个Activity_A继承Activity;
2,、在MainActivity中定义Intent intent=new Intent(MainActivity.this,Activity_A.class);
intent.putExtra("name", name);
startActivity(intent);
3、在Activity_A中使用Intent intent=getIntent();
String name=intent.getStringExtra("name");
这样就可以得到值
Activity生命周期
onCreate 创建Activity时被调用
onRestart Activity被重新显示时被调用
onStart 显示Activity时被调用
onResume Activity获取焦点时被调用(用户可以与Activity交互)
onPause Activity失去焦点时被调用
onStop Activity不可见时被调用
onDestroy Activity销毁时被调用
Activity声明周期总结
ActivityA -> ActivityB ->返回到ActivityA
1、ActivityB将ActivityA覆盖
A:onPause -> B:onCreate -> B:onStart -> B:onResume -> A:onStop
按下返回键后-> B:onPause ->A:onRestart -> A:onStart -> A:onResume -> B:onStop -> B:onDestroy
2、ActivityB没有将ActivityA覆盖
A:onPause -> B:onCreate -> B:onStart -> B:onResume ->
按下返回键后 B:onPause -> A:onResume -> B:onStop -> B:onDestroy