Activity的生命周期学习体验
来源:互联网 发布:淘宝优惠券手机连接 编辑:程序博客网 时间:2024/05/24 04:02
今天学习了Activity的生命周期,首先我讲一下Log类,它主要是在程序中充当日志的输出,它几种日志输出,有用过DDMS控制台的人可能有留意到在LogCat输出窗口上可以看到有V(verbose)、D(debug)、I(info)、W(warn)、E(error),几种类型的日志,相对于有Log.v(String tag,String msg),Log.d(String tag,String msg),Log.i(String tag,String msg),Log.w(String tag,String msg),Log.e(String tag,String msg),5种日志输入,相对于的参数tag表示所在类的名字,msg表示输出的消息。使用Log可以给我们写程序提供错误的排查,也是一个非常便捷错误输出提示作用。这就是顺便的提一下Log的讲解,下面就讲解一下Activity的生命周期。
讲到Activity的生命周期,就讲一下跟Activity生命周期有关的几个方法,其中有onCreate(BundlesavedInstanceState),OnStart(),OnRestart(),OnResume(),OnPause(),OnStop(),OnDestroy()如图:
也可以看一下文档中Activity的生命周期视图:
当我们看到这个图的时候,对android不是很熟悉的同学,可能就看的不太懂了,下面就用一个程序来简单介绍一下:
主要贴出三个Activity,其中MainActivity.java代码如下:
package com.cooguo.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private Button secondBtn = null;
private Button thirdBtn = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
secondBtn = (Button) findViewById(R.id.second);
secondBtn.setOnClickListener(listener);
thirdBtn = (Button)findViewById(R.id.third);
thirdBtn.setOnClickListener(listener);
Log.i(TAG, "MainActivity-->onCreate");
}
private OnClickListener listener = new OnClickListener(){
@Override
public void onClick(View view) {
Button btn = (Button)view;
Intent itent = new Intent();
switch (btn.getId()) {
case R.id.second:
itent.setClass(MainActivity.this, SecondActivity.class);
break;
case R.id.third:
itent.setClass(MainActivity.this, ThirdActivity.class);
break;
}
startActivity(itent);
}
};
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.i(TAG, "MainActivity-->onStart");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.i(TAG, "MainActivity-->OnRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG, "MainActivity-->OnResume");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i(TAG, "MainActivity-->OnPause");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.i(TAG, "MainActivity-->OnStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG, "MainActivity-->OnDestroy");
}
}
而SecondActivity的代码:
package com.cooguo.activity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class SecondActivity extends Activity {
private static final String TAG = "MainActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
Log.i(TAG, "SecondActivity-->onCreate");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.i(TAG, "SecondActivity-->onStart");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.i(TAG, "SecondActivity-->OnRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG, "SecondActivity-->OnResume");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i(TAG, "SecondActivity-->OnPause");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.i(TAG, "SecondActivity-->OnStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG, "SecondActivity-->OnDestroy");
}
}
最后ThirdActivity.java的代码是:
package com.cooguo.activity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class ThirdActivity extends Activity {
private static final String TAG = "MainActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third);
Log.i(TAG, "ThirdActivity-->onCreate");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.i(TAG, "ThirdActivity-->onStart");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.i(TAG, "ThirdActivity-->OnRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG, "ThirdActivity-->OnResume");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i(TAG, "ThirdActivity-->OnPause");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.i(TAG, "ThirdActivity-->OnStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG, "ThirdActivity-->OnDestroy");
}
}
我用的日志输出是用Log.i类型的日志,tag我都是用MainActivity主要是因为在Logcat中比较容易看出Activity的生命周期变化,还有一下配置文件一看代码就可能懂了,还有一点就是你没添加一个Activity都要在AndroidManifest.xml文件中添加相应的Activity,还有就是ThirdActivity这个Activity为了更加的体现Activity的生命周期视图,它的配置如下:
<activity android:name=".ThirdActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
下图截图是我运行后的效果:
- Activity的生命周期学习体验
- 【Android学习总结】之Activity:深入理解、体验Activity的生命周期
- Activity的生命周期学习
- activity的生命周期学习
- activity的生命周期学习
- 体验android Activity的完整生命周期
- Android学习之Activity的生命周期学习
- Android 学习记录3 -Activity 的生命周期
- android 基础学习(3)-----activity的生命周期
- Android学习笔记--Activity的生命周期
- android学习之-activity的生命周期
- Android学习——Activity的生命周期
- (Android学习笔记)Activity的生命周期
- Android学习笔记4 Activity的生命周期
- android中activity的生命周期研究学习
- android学习四(Activity的生命周期)
- android学习之Activity的生命周期理解
- 学习之路之Activity的生命周期
- c语言枚举类型详解
- jquerymobile-15 radio buttons和checkboxes
- 九度OJ 教程34 (完全二叉树)树的查找
- Amazon Cloud Outage KOs Reddit, Foursquare & Others
- Generator Fan Failure Triggered AWS Outage
- Activity的生命周期学习体验
- Power Outage Affects Amazon Customers
- 安装ubuntu12注意事项
- San Diego’s AIS Rides Out Power Outage
- UIImageView帧动画
- 程序员必看的六十本书
- Power Surge KOs Washington State Data Center
- Sicily 1028 Hanoi Tower Sequence
- JdbcTemplate 简介