android Activity基本概念

Activity是Android的大组件之一,代表了一个具有用户界面的单一屏幕;
它主要有七个调用的方法:

onCreate(): //用来显示Activity或初始化其中的组件或事件处理
onStart():在Activity可见时执行
onRestart():回到最上边的界面,再次可见时执行,会重新调用onStart()
onResume():获取焦点时执行
onPause():失去焦点时执行
onStop():不可见进入后台时执行
onDestroy():销毁时执行

onSaveInstanceState(Bundle outState) 方法
onSaveInstanceState函数是Activity的生命周期函数
outState 参数作用 :
 数据保存 : Activity 声明周期结束的时候, 需要保存 Activity 状态的时候, 会将要保存的数据使用键值对的形式 保存在 Bundle 对象中;
 恢复数据 : 在 Activity 的 onCreate()方法 创建 Activity 的时候会传入一个 Bundle 对象, 这个 Bundle 对象就是这个 outState 参数;
 [想了解点这里](https://blog.csdn.net/u011068702/article/details/70217576/?ops_request_misc=&request_id=&biz_id=102&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0)


另外:activity有三种状态:运行状态,暂停状态,停止状态。
在状态变化时,Activity会调用方法;

public class MainActivity extends Activity {
   String msg = "Android : ";

   /** 当活动第一次被创建时调用 */
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(msg, "The onCreate() event");
     // 最主要调用的方法,Android系统初始化它的程序是通过活动中的 onCreate() 回调的调用开始的。
   }

   /** 当活动即将可见时调用 */
   @Override
   protected void onStart() {
      super.onStart();
      Log.d(msg, "The onStart() event");
      //在oncreate()后立即调用;也多在再次启动程序时调用
   }

   /** 当活动可见时调用 */
   @Override
   protected void onResume() {
      super.onResume();
      Log.d(msg, "The onResume() event");
   }

   /** 当其他活动获得焦点时调用 */
   @Override
   protected void onPause() {
      super.onPause();
      Log.d(msg, "The onPause() event");
   }

   /** 当活动不再可见时调用 */
   @Override
   protected void onStop() {
      super.onStop();
      Log.d(msg, "The onStop() event");
   }

   /** 当活动将被销毁时调用 */
   @Override
   public void onDestroy() {
      super.onDestroy();
      Log.d(msg, "The onDestroy() event");
   }
}

在Activity创建时 要在AndroidManifest里声明:

 <activity
          android:name=".MainActivity"
          android:label="@string/title_activity_main" >
			//可以设置名字:android:label="mingzi"
			//也可以设置主题android:theme="@style/&^^^"
			//排序模式:screenOrientation=" "
			//启动模式:launchMode="  "
          <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER"/>
          //这里是设置了是主程序运行;
          </intent-filter>

       </activity>

下面来讲讲程序之间的切换:
组件之间的通讯主要由Intent协助完成。Intent负责对应用中一次操作的Action(动作)、Action涉及的Data(数据)、Extras(附加数据)进行描述,Android 则根据 Intent 的描述,找到对应的组件,将 Intent 传递给调用的组件,并完成组件的调用。因此,Intent 在这里起着一个媒体中介的作用,专门提供组件间互相调用的相关信息,实现调用者与被调用者之间的解耦。

最简单的调用方法:

Intent intent =new Intent(MainActivity.this,Main2Activity.class);
startActvity(intent);

假如要传递数据:
intent中可以存放:启动Activity时传递数据,Intent对象的putExtra()方法;之后用Intent对象的get……Extra()获取

//在第一个Activity中:
string name_str=view.getText().toString();
Intent putExtra("username",name_str);   //这里时用来传递数据,是键值对形式
startActvity(intent);
在第二个Activity中
Intent intent=getIntent();
string username= intent.getStringExtra("username");

又假如要两个来回传递数据:

startActivityForResult(intent,requestCode);//这里的requestCode要注意一下


protected void onActivityResult(int requestCode,int resultCode,Intent data){//resultCode从第二个Activity那传递过来,用来配对;data是传过来的数据
super.onActivityResult(requestCode,resultCode,data);//这里只是继承一下,下面继续对数据进行操作;
…………
}
第二个activity
Intent intent=getIntent();
Intent putExtra("username","123")
setResult(resultCode,intent)//这里的resultCode完成配对;
finish();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值