Android四大基本组件:Activity,Service,BroadcastReceiver,ContentProvider.
这次谈谈Activity:Activity有三种状态,分别是:运行状态,暂停状态,以及停止状态。运行状态:当前Activity可见,并且有焦点,可以触屏得到。暂停状态:Activity可见,但是没有焦点,触摸不到(长按Home,可见后面得Activity)。停止状态:Activity不可见,并且没有焦点,触摸不到。
下图可见Activity的生命周期:
图解:当程序运行时,首先运行onCreate()方法,然后运行onStart()方法,最后运行onResume()方法。程序就开始运行了,如果这个时候有另外一个Activity运行到当前Activity的前面了,就是执行onPause()方法,onStop()方法会在当前Activity不可见得时候,也就是没有焦点了只有执行。(左边)这个时候如果有其他的优先级更高的进程要求内存空间时,系统会杀死Activity,应用程序被彻底停止,内存被释放,当用户重新进入该Activity,则重新执行onCreate()方法。(右边)如果当前Activity暂停,例如长按HOME键,会出现最近使用的应用程序,返回键重新回到Activity,则会重新回到onResume()方法。假如Activity处于停止状态的话,用户重新回到Activity,则会执行onRestart()方法,并且重新执行onStart()方法。当Activity完成或者被系统Destroy的时候,会执行onDestroy()。
下面是测试代码:
@Override
protected void onCreate() {
super.onStart();
System.out.println("onCreate");
}
@Override
protected void onStart() {
super.onStart();
System.out.println("onStart");
}
@Override
protected void onResume() {
super.onResume();
System.out.println("onResume");
}
@Override
protected void onPause() {
super.onPause();
System.out.println("onPause");
}
@Override
protected void onStop() {
super.onStop();
System.out.println("onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("onDestroy");
}
通过实际操作可以在Logcat上面看到一系列信息的输出。当程序安装完成可以看到输出信息:onCreate,onStart,onResume。点击HOME键,可以看到信息:onPause,onStop。回到上个Activity,输出信息:onRestart,onStart,onResume。点击返回按钮,输出:onPause,onStop,onDestroy。
Activity操作:在AndroidManiFest.xml文件中,可以更改Activity的Theme。
例如:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
此处是将Activity设置为没有标题栏的黑色背景。(android:theme=”@android:style/Theme.Black.NoTitleBar)