——- android培训、java培训、期待与您交流! ———-
在我学习andriod的过程中,从基础慢慢了解深入,首先接触的是activity。activity是android所有的基础,代表了一个页面,所有的内容都通过activity来展示。比如承载信息的控件,button,checkbox,listview等等。我们的android应用是由很多个activity组成的,每个页面之间的切换都是事件的触发导致从一个activity跳转到另一个activity,这下就引出了activity的生命周期。Activity 是由Android 系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握,其次就是状态的保存和恢复,以及Activity 之间的跳转和数据传输。作为android的四大组建之一。activity要在清单文件中声明。如下格式:
<activity
android:name=".AActivity"
android:label="@string/aactivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".BActivity"
android:label="@string/bactivity">
</activity>
一个activity的生命周期将会调用到以下的方法,onCreate();onStart();onResume();onPause();onStop();onDestroy();以下应用一张图片,清晰地展示了activity的生命周期,及其是如何转换的
通过示例代码打印的log日志能够清楚的了解到一个activity从出生到销毁经历了怎么样的方法调用,我们可以在当前方法调用时写上自己的业务逻辑代码,实现自己的业务逻辑。
package com.activity;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
public class LifecycleActivity extends Activity {
private static final String TAG = "LifecycleActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart");
}
@Override
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG, "onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.i(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.i(TAG, "onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestroy");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.i(TAG, "onSaveInstanceState");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG, "onRestoreInstanceState");
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(TAG, "onConfigurationChanged");
}
}
从一个页面跳到另一个页面我们需要新建一个Intent意图,然后用StartActivity(intent)来启动activity。用OnActivityResult()的方法来启动一个带有返回值的activity,在父activity中用setResult方法来接受返回值
intent = new Intent(this,class);
startActivity(intent);
// onActivityResult(requestCode, resultCode, data);