Android中的Acitivity

来源:互联网 发布:大数据龙头股票 编辑:程序博客网 时间:2024/05/16 05:09

目录

  • 目录
  • 在清单文件中声明 Activity
  • 使用Intent过滤器来标识程序入口
  • Activity的几个常用属性
  • 启动Activity
  • 结束Activity

本文整理自
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

有两种方式用来启动Activity
1.使用 startActivity()方法启动,这种方法启动的Activity“不可以”获得该Activity执行完后的结果。
2. 使用startActivityForResult()方法启动,这种方法启动的Ativity“可以”获得该Activity执行完后的结果,但需要实现 onActivityResult() 回调方法。
示例
1.startActivity()方法

//param1:当前Acitivity的Context//param2:待启动Activity的classIntent 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中判断返回的是不是属于自己的信息。}@Osverrideprotected 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。

原创粉丝点击