Android Activity 操持详解

熊熊出没  金牌会员 | 2024-6-22 18:37:21 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 556|帖子 556|积分 1668

Android Activity 操持阐明

在 Android 中,Activity 是一个应用程序组件,提供一个屏幕供用户进行交互。每个 Activity 负责管理用户界面的一个独立部分,并处理用户的交互。下面是 Activity 的操持及其关键部分的具体阐明。
1. Activity 的生命周期

Activity 的生命周期方法用于管理其状态转换。重要的生命周期方法有:


  • onCreate(Bundle savedInstanceState): Activity 被创建时调用。在这里进行初始化,如设置布局、初始化组件等。
  • onStart(): Activity 即将可见时调用。
  • onResume(): Activity 即将开始与用户交互时调用。
  • onPause(): 系统即将启动另一个 Activity 时调用。用于生存状态和释放资源。
  • onStop(): Activity 不再可见时调用。通常用于释放资源。
  • onDestroy(): Activity 被烧毁前调用。用于清算资源。
  • onRestart(): Activity 从停止状态再次启动前调用。
这些方法帮助 Activity 管理其状态并与用户进行交互。
2. Activity 的启动模式

Android 提供了几种差别的启动模式,用于定义 Activity 的启动举动。重要有以下几种:


  • standard: 每次启动 Activity 都会创建一个新的实例。
  • singleTop: 如果当前使命的栈顶已经有该 Activity 实例,则重用该实例,否则创建新的实例。
  • singleTask: 在栈中只保留一个 Activity 实例,如果实例存在,则将其置于栈顶。
  • singleInstance: 创建一个单独的使命栈来管理该 Activity,而且在该使命栈中只存在这一个 Activity 实例。
启动模式在 AndroidManifest.xml 中通过 android:launchMode 属性进行设置。
3. Activity 的通讯

Activity 可以通过 Intent 进行通讯。Intent 是一个消息对象,用于在差别的组件(如 Activity、Service)之间通报数据。启动另一个 Activity 的根本方式如下:
  1. Intent intent = new Intent(this, AnotherActivity.class);
  2. intent.putExtra("key", "value");
  3. startActivity(intent);
复制代码
接收数据的 Activity 可以在 onCreate 或 onNewIntent 方法中处理通报过来的 Intent:
  1. Intent intent = getIntent();
  2. String value = intent.getStringExtra("key");
复制代码
4. Activity 的布局和视图管理

Activity 通过 setContentView 方法设置其布局:
  1. setContentView(R.layout.activity_main);
复制代码
布局文件(如 activity_main.xml)定义了该 Activity 的用户界面。可以通过 findViewById 方法获取视图并进行操作:
  1. Button button = findViewById(R.id.my_button);
  2. button.setOnClickListener(new View.OnClickListener() {
  3.     @Override
  4.     public void onClick(View v) {
  5.         // Handle button click
  6.     }
  7. });
复制代码
5. Activity 的设置变化处理

当装备设置发生变化(如屏幕旋转、键盘可用性变化等)时,Activity 会被烧毁并重新创建。可以通过在 AndroidManifest.xml 中设置 android:configChanges 属性,告知系统在特定设置变化时不烧毁 Activity,而是调用 onConfigurationChanged 方法:
  1. <activity android:name=".MainActivity"
  2.     android:configChanges="orientation|screenSize|keyboardHidden">
  3. </activity>
复制代码
在 Activity 中覆盖 onConfigurationChanged 方法:
  1. @Override
  2. public void onConfigurationChanged(Configuration newConfig) {
  3.     super.onConfigurationChanged(newConfig);
  4.     // Handle configuration changes
  5. }
复制代码
6. Activity 的生存和恢复状态

为了在设置变化或其他情况下生存和恢复 Activity 的状态,可以使用 onSaveInstanceState 和 onRestoreInstanceState 方法:
  1. @Override
  2. protected void onSaveInstanceState(Bundle outState) {
  3.     super.onSaveInstanceState(outState);
  4.     outState.putString("key", "value");
  5. }
  6. @Override
  7. protected void onRestoreInstanceState(Bundle savedInstanceState) {
  8.     super.onRestoreInstanceState(savedInstanceState);
  9.     String value = savedInstanceState.getString("key");
  10. }
复制代码
7. Activity 的使命和返回栈

Android 使用使命和返回栈(Back Stack)来管理 Activity 的导航。每个使命由一个栈(返回栈)来管理 Activity。Activity 被启动时,会被添加到使命的返回栈中。用户按下返回按钮时,系统会从返回栈中弹出当前的 Activity 并体现前一个 Activity。
总结

Activity 是 Android 应用程序的核心组件之一,负责管理用户界面和用户交互。通过生命周期方法、启动模式、视图管理、设置变化处理和使命管理,Activity 提供了丰富的功能来构建和管理复杂的应用程序界面。相识和掌握 Activity 的操持和使用,对于开发高效和响应迅速的 Android 应用程序至关紧张。
接待点赞|关注|收藏|评论,您的肯定是我创作的动力


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表