2020-09-27 Android基础知识——Activity

参考于Android官方文档

Activity

Activity是android应用的关键组件,与桌面系统不同的是,android应用有多种启动入口。当一个应用调用另一个应用时,调用方法会调用另一个应用的activity,而不是整个app。这种情况下activity充当了与用户交互的入口。通常一个app有一个mainActivity作为app启动时的入口。虽然Activity是在协同工作,但每个Activity间只存在很少的依赖。要在app中使用activity,需要在androidmanifest.xml,也就是清单中声明关于Activity的信息,管理Activity的生命周期。

Androidmanifest.xml

声明一个activity,需要在androidmanifest中将该activity作为application元素的子元素。activity元素唯一必要的属性是android:name。(发布应用后,activity:name熟悉不应该更改)

    <manifest ... >
      <application ... >
          <activity android:name=".ExampleActivity" />
          ...
      </application ... >
      ...
    </manifest >

Intent过滤器是一个消息传递对象,借助这项功能,可以通过显式请求与隐式请求来启动Activity。
使用Intent功能,需要在<activity>元素中声明<intent-filter>属性,该熟悉包含<action>元素,可选的<category>元素与<data>元素。通过这些元素可以指定Activity能够响应的intent类型。

    <activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
    

上述例子中,<action>指定该Activity会发送数据,将<category> 元素声明为 DEFAULT 可使 Activity 能够接收启动请求。<data>元素指定此 Activity 可以发送的数据类型。以下代码段展示了如何调用上述 Activity:

    // Create the text message with a string
    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.setType("text/plain");
    sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
    // Start the activity
    startActivity(sendIntent);

实例化Intent对象后,使用sentAction()为Intent指定操作,ACTION_SEND意味使用发送数据的Action,setType设定数据类型,putExtra则是携带完成请求操作所需的附加信息的键值对。最后将该Intent传入启动Activity方法中。

可以使用清单的 <activity>标记来控制哪些应用可以启动某个 Activity。父 Activity 和子 Activity 必须在其清单中具有相同的权限,前者才能启动后者。如果您为父 Activity 声明了 <uses-permission>元素,则每个子 Activity 都必须具有匹配的 <uses-permission>元素。

Activity的生命周期
onCreat()
onStart()
onResume()
onPause()
onStop
onRestart()
onDestroy()

暂时就到这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容