Android学习笔记---Log与Activity生命周期

1. Log类的应用。

Log.v(String tag, String msg); //VERBOSE

Log.d(String tag, String msg); //DEBUG

Log.i(String tag, String msg); //INFO

Log.w(String tag, String msg); //WARN

Log.e(String tag, String msg); //ERROR

以上log的级别依次升高,VERBOSE DEBUG信息应当只存在于开发中,INFO,WARN,ERROR这三种log将出现在发布版本中。

Android学习笔记---Log与Activity生命周期

2.Activity生命周期。

本人刚开始学习Android,对Android中Activity的生命周期很是模糊。现在把自己的学习和理解记录下来。

先来看一下Activity生命周期的图

Android学习笔记---Log与Activity生命周期

一个Activity有三种状态:

1. 激活或者运行状态,运行在前台(在当前Activity栈的栈顶)。

2. 暂停状态,失去了焦点但是仍然对用户可见,比如有其他的Activity在它之上,或者透明或者没有遮住整个屏幕。

3.停止状态,被其他Activity覆盖,需要注意的是包括暂停状态在内,这两种状态都仍然保存了所有状态信息,直到被系统终止。

Activity各个状态直接的转换,被一下方法所监听。

复制代码

protected void onCreate(Bundle savedInstanceState);

protected void onStart();

protected void onRestart();

protected void onResume();

protected void onPause();

protected void onStop();

protected void onDestroy();

复制代码

可以通过复写上面7个方法来做适当的工作。

onCreate()是必须被实现的,来初始化Activity的状态。

一般都会在onPause()里来提交数据的改变以准备中止和用户的交互。

注意:所有这些Activity的生命周期方法的实现都应该先调用其父类的方法 如下所示:

protected void onStart()

{

// TODO Auto-generated method stub

super.onStart();

Log.i(TAG, "MainActivity==onStart");

}

下面我们来写个Demo来演示一下Activity的生命周期过程。

1.单个Activity的生命周期过程。我们创建一个 MainActivity

前端布局文件。

复制代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:orientation="vertical"

android:layout_height="fill_parent"

tools:context=".MainActivity" >

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

<TextView android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="用户名:"/>

<EditText android:id="@+id/txt_name"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

</LinearLayout>

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

<Button android:id="@+id/btn_second"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="弹出第二个Activity"/>

<Button android:id="@+id/btn_third"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="弹出一个对话框"/>

</LinearLayout>

</LinearLayout>

复制代码

后台覆盖方法源码:

复制代码

public class MainActivity extends Activity

{

private final static String TAG="MainActivity";

private EditText txt_name=null;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.i(TAG,"MainActivity==onCreate");

txt_name=(EditText)findViewById(R.id.txt_name);

Button btn_second=(Button)findViewById(R.id.btn_second);

btn_second.setOnClickListener(listener);

Button btn_third=(Button)findViewById(R.id.btn_third);

btn_third.setOnClickListener(listener);

}

private OnClickListener listener=new OnClickListener()

{

@Override

public void onClick(View view)

{

Button btn=(Button)view;

switch (btn.getId())

{

case R.id.btn_second:

{

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

String name=txt_name.getText().toString();

intent.putExtra("Name",name);

MainActivity.this.startActivity(intent);

}

break;

case R.id.btn_third:

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

intent.putExtra("Name", txt_name.getText().toString());

startActivity(intent);

break;

default:

break;

}

}

};

@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");

}

@Override

public boolean onCreateOptionsMenu(Menu menu)

{

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

分类:默认分类 时间:2015-03-01 人气:2
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.039 (s). 10 q(s)