Android学习之路——Activity(1)

Android四大基本组件:ActivityServiceBroadcastReceiver,ContentProvider.
这次谈谈Activity:Activity有三种状态,分别是:运行状态,暂停状态,以及停止状态。运行状态:当前Activity可见,并且有焦点,可以触屏得到。暂停状态:Activity可见,但是没有焦点,触摸不到(长按Home,可见后面得Activity)。停止状态:Activity不可见,并且没有焦点,触摸不到。
下图可见Activity的生命周期:Android学习之路——Activity(1)_第1张图片
图解:当程序运行时,首先运行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

你可能感兴趣的:(android,组件,触屏)