影者东升 发表于 2021-8-4 15:35:22

Android Activity生命周期 之starting an activity

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阶段结束它们。


文档来源:51CTO技术博客https://blog.51cto.com/u_15322177/3266606
页: [1]
查看完整版本: Android Activity生命周期 之starting an activity