目录
本文整理自
https://developer.android.com/guide/components/activities.html#Lifecycle
如有错误,欢迎指正。
在清单文件中声明 Activity
您必须在清单文件中声明您的 Activity,这样系统才能访问它。 要声明您的 Activity,请打开您的清单文件,并将 元素添加为 元素的子项。例如:
<manifest ... > <application ... > <activity android:name=".ExampleActivity" /> ... </application ... > ... </manifest >
使用Intent过滤器来标识程序入口
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
<action> 元素指定这是应用的“主”入口点。 元素指定此 Activity 应列入系统的应用启动器内(以便用户启动该 Activity)。
注意:如果<intent-filter>内没有东西,就不要留 <intent-filter>,要不然启动不了程序。
Activity的几个常用属性
启动Activity
有两种方式用来启动Activity
1.使用 startActivity()方法启动,这种方法启动的Activity“不可以”获得该Activity执行完后的结果。
2. 使用startActivityForResult()方法启动,这种方法启动的Ativity“可以”获得该Activity执行完后的结果,但需要实现 onActivityResult() 回调方法。
示例
1.startActivity()方法
//param1:当前Acitivity的Context //param2:待启动Activity的class Intent intent = new Intent(this, SignInActivity.class);//SignlnActivity是即将启动的Activity对象 startActivity(intent);
不过,当你想给新启动的Activity传送数据的时候,例如发送电子邮件、短信或状态更新,要个新的Activity传送新的数据。 在这种情况下你可以用Intent来帮你传送,这也是Intent的主要用途。
例如,如果您想允许用户发送电子邮件,可以创建以下 Intent:
Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, recipientArray); startActivity(intent);
2.startActivityForResult()方法
说明:例如,您可能希望用户选取其中一位联系人,以便您的 Activity 对该联系人中的信息执行某项操作。 您可以通过以下代码创建此类 Intent 并处理结果,pickContact()方法用来启动新的Activity.
private void pickContact() { // Create an intent to "pick" a contact, as defined by the content provider URI Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);//Contact.CONTENT_URI表示的是启动通讯录的Activity. startActivityForResult(intent, PICK_CONTACT_REQUEST);//PICK_CONTACT_REQUEST:这个常量由自己定义,用来在onActivityResult中判断返回的是不是属于自己的信息。 } @Osverride protected void onActivityResult(int requestCode, int resultCode, Intent data) { // If the request went well (OK) and the request was PICK_CONTACT_REQUEST //当resultCode等于Activity.RESULT_OK 表明信息返回成功 if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) { // Perform a query to the contact's content provider for the contact's name //查询返回的具体信息 Cursor cursor = getContentResolver().query(data.getData(), new String[] {Contacts.DISPLAY_NAME}, null, null, null); if (cursor.moveToFirst()) { // True if the cursor is not empty int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME); String name = cursor.getString(columnIndex);//得到具体信息 // Do something with the selected contact's name... } } }
结束Activity
您可以通过调用 Activity 的 finish() 方法来结束该 Activity。您还可以通过调用 finishActivity() 结束您之前启动的另一个 Activity。