Android Activity生命周期 之starting an activity

9 篇文章 231 订阅 ¥79.90 ¥99.00
当用户点击Android应用程序按钮,系统会在onCreate()中初始化Activity。主Activity需在AndroidManifest.xml中设置<intent-filter>,否则不会显示在应用列表。onCreate()、onStart()和onResume()确保Activity对用户可见。大多数情况下,Activity在onPause()和onStop()期间被清理,但若包含长期资源,应在onDestroy()中关闭以避免内存泄露。
摘要由CSDN通过智能技术生成

http://developer.android.com/training/basics/activity-lifecycle/starting.html#launching-activity

这是从Andorid网站上一句一句翻译过来的,小编英语不太好,有什么不对的,还望指出。

一、应用程序启动Activity

当用户在桌面上点击应用程序按钮,系统会调用应用程序Activity的onCreate()方法来初始化activity。这个activity是为用户提供应用程序的接口。

可以在AndroidManifest.xml中设置哪一个Activity作为主Activity.

主Activity必须为你的应用程序申明<intent-filter>,其中包括Main action和Launcher catgory.

比如

<activity android:name=".MainActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

如果两者都没有为你的activity声明,那么你的应用程序将不会出现在app列表中。

二、新建一个新的实例

大多数app包括多种不同的activity,允许用户执行不同的操作。无论一个activity是主activity,当用户点击应用图标或者不同的activity,你的app开始为用户的操作做出响应,系统每创建一个Activity实例,都要调用onCreate()方法。

在activity的整个生命周期里,你必须实现onCreate的方法来执行基本的应用启动逻辑,例如定义用户的接口,初始化全局变量。

TextView mTextView; // Member variable for text view in the layout

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set the user interface layout for this Activity
    // The layout file is defined in the project res/layout/main_activity.xml file
    setContentView(R.layout.main_activity);
    
    // Initialize member TextView so we can manipulate it later
    mTextView = (TextView) findViewById(R.id.text_message);
    
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // For the main activity, make sure the app icon in the action bar
        // does not behave as a button
        ActionBar actionBar = getActionBar();
        actionBar.setHomeButtonEnabled(false);
    }
}

当onCreate()执行结束,系统将调用onStart()和onResume方法,你的activity永远不会停留在创建和开始阶段。当onStart()方法被调用时,Activity开始对用户可见,紧接着执行onResume方法,Activity将一直保持onResume状态,直至一些事件发生,比如接电话,用户的导航指向其他activity,或者设备屏幕熄灭。


三、结束Activity

大多数app不必实现该方法,因为本地类引用随着Activity而消失,你的Activity进程在onPause()和onStop()过程中被清理了绝大部分。然而,如果你的Activity在创建时包括后台进程,或者其他长期运行的资源,如果它们不被正确关闭,会潜在地造成内存泄露,你应该在onDestroy阶段结束它们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值