评论

收藏

[其他] Android Activity生命周期 之starting an activity

网络安全 网络安全 发布于:2021-08-04 15:35 | 阅读数:338 | 评论:0

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,或者设备屏幕熄灭。
DSC0000.png

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


关注下面的标签,发现更多相似文章