Android中的Acitivity

目录

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值