Activity的跳转与传值

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



转载于:https://my.oschina.net/weiwei1314/blog/657634

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值