Android学习之路——Activity(1)

Android四大基本组件:ActivityServiceBroadcastReceiver,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

ActivityManager是Android系统中非常重要的一个组件,负责管理系统中所有Activity的生命周期、进程管理、任务管理等。在本篇文章中,我们将深入了解ActivityManager框架的实现原理。 ## Activity的启动过程 在Android系统中,Activity是应用程序中最基本的界面单元。当用户点击应用程序的图标时,ActivityManager会负责启动应用程序并启动相应的Activity。下面是Activity的启动过程: 1. 应用程序进程启动:ActivityManager会创建一个新的进程来运行应用程序。 2. 应用程序的Application对象创建:在应用程序进程启动之后,ActivityManager会负责创建应用程序的Application对象。 3. Activity对象创建:当用户点击应用程序的图标并选择启动Activity时,ActivityManager会负责创建相应的Activity对象。 4. Activity的onCreate方法调用:ActivityManager会调用Activity对象的onCreate方法,完成Activity的初始化工作。 5. Activity的onStart方法调用:ActivityManager会调用Activity对象的onStart方法,将Activity显示给用户。 6. Activity的onResume方法调用:ActivityManager会调用Activity对象的onResume方法,让Activity成为用户交互的焦点。 7. Activity的生命周期结束:当用户退出Activity时,ActivityManager会负责销毁Activity对象。 ## 进程管理 在Android系统中,每个应用程序都运行在一个独立的进程中。ActivityManager负责管理所有进程,以确保系统的稳定和性能。 当应用程序被启动时,ActivityManager会为其创建一个新的进程并分配一定的内存资源。如果此时系统内存不足,ActivityManager会根据一定的策略来回收一些进程内存,以确保系统正常运行。 ActivityManager还负责监控进程的CPU使用情况和内存使用情况。如果一个进程的CPU使用率过高或者内存使用量过大,ActivityManager会考虑回收该进程的资源,以避免系统崩溃。 ## 任务管理 在Android系统中,任务是指一组相关的Activity。当用户启动一个应用程序时,ActivityManager会创建一个新的任务,并将应用程序的第一个Activity加入到该任务中。 当用户从一个Activity切换到另一个Activity时,ActivityManager会将前一个Activity加入到任务的后台,并将新的Activity显示给用户。当用户点击返回键时,ActivityManager会将当前Activity从任务中移除,并将前一个Activity重新显示给用户。 需要注意的是,当应用程序中的所有Activity都被销毁时,该应用程序的任务也会被销毁。这是因为Android系统中的Activity都是基于任务的,一个应用程序的所有Activity都属于同一个任务。 ## 总结 ActivityManager是Android系统中非常重要的一个组件,它负责管理系统中所有Activity的生命周期、进程管理、任务管理等。在本篇文章中,我们深入了解了ActivityManager的实现原理。熟悉ActivityManager的工作原理对于开发高质量的Android应用程序非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值