当前位置: 首页 > news >正文

网站标题titlewordpress导入采集文章

网站标题title,wordpress导入采集文章,做期货看什么网站的资讯,视频app开发引言 在安卓开发的世界里#xff0c;四大组件如同建筑的基石#xff0c;支撑着整个安卓应用的架构。掌握这四大组件及其生命周期#xff0c;是每个安卓开发者的必修课。本文将深入剖析安卓开发的四大组件#xff1a;Activity、Service、BroadcastReceiver和ContentProvide…引言 在安卓开发的世界里四大组件如同建筑的基石支撑着整个安卓应用的架构。掌握这四大组件及其生命周期是每个安卓开发者的必修课。本文将深入剖析安卓开发的四大组件Activity、Service、BroadcastReceiver和ContentProvider并详细介绍它们的生命周期帮助你全面掌握安卓开发的核心概念。 Activity用户交互的门面 Activity是安卓应用中最基本也是最常见的组件它为用户提供一个可视化的界面用于实现与用户的交互。一个Activity通常就是一个单独的屏幕界面。 Activity的生命周期 Activity的生命周期由多个状态和回调方法组成理解这些对于管理Activity的行为至关重要。 主要的生命周期方法包括 onCreate()Activity首次创建时调用用于初始化布局和变量。onStart()Activity即将可见时调用。onResume()Activity与用户开始交互时调用。onPause()Activity部分被遮挡或失去焦点时调用。onStop()Activity完全不可见时调用。onDestroy()Activity即将被销毁时调用。onRestart()Activity从停止状态重新启动时调用。 示例代码 下面是一个简单的Activity生命周期示例代码 public class MainActivity extends AppCompatActivity {private static final String TAG MainActivity;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.d(TAG, onCreate: Activity created);}Overrideprotected void onStart() {super.onStart();Log.d(TAG, onStart: Activity started);}Overrideprotected void onResume() {super.onResume();Log.d(TAG, onResume: Activity resumed);}Overrideprotected void onPause() {super.onPause();Log.d(TAG, onPause: Activity paused);}Overrideprotected void onStop() {super.onStop();Log.d(TAG, onStop: Activity stopped);}Overrideprotected void onDestroy() {super.onDestroy();Log.d(TAG, onDestroy: Activity destroyed);}Overrideprotected void onRestart() {super.onRestart();Log.d(TAG, onRestart: Activity restarted);} }生命周期场景 Activity的生命周期会根据不同的场景发生变化例如 用户打开应用时Activity经历onCreate() - onStart() - onResume()。用户按下Home键Activity经历onPause() - onStop()。用户返回应用Activity经历onRestart() - onStart() - onResume()。当Activity被销毁时经历onPause() - onStop() - onDestroy()。 Service后台工作的执行者 Service是安卓应用中用于在后台执行长时间运行操作的组件它没有用户界面。Service可以在后台处理网络请求、播放音乐、执行文件操作等任务。 Service的生命周期 Service有两种启动方式因此有不同的生命周期路径 1. 启动式ServiceStarted Service onCreate()Service首次创建时调用。onStartCommand()每次启动Service时调用。onDestroy()Service被销毁时调用。 2. 绑定式ServiceBound Service onCreate()Service首次创建时调用。onBind()客户端绑定到Service时调用。onUnbind()客户端解除绑定时调用。onDestroy()Service被销毁时调用。 示例代码 下面是一个简单的启动式Service示例 public class MyService extends Service {private static final String TAG MyService;Overridepublic void onCreate() {super.onCreate();Log.d(TAG, onCreate: Service created);}Overridepublic int onStartCommand(Intent intent, int flags, int startId) {Log.d(TAG, onStartCommand: Service started);// 执行后台任务new Thread(new Runnable() {Overridepublic void run() {// 长时间运行的任务for (int i 0; i 10; i) {Log.d(TAG, run: Working... i);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}// 任务完成后停止服务stopSelf();}}).start();return START_STICKY;}Overridepublic void onDestroy() {super.onDestroy();Log.d(TAG, onDestroy: Service destroyed);}NullableOverridepublic IBinder onBind(Intent intent) {return null; // 对于启动式Service返回null} }Service的应用场景 后台音乐播放后台数据同步处理网络请求 BroadcastReceiver系统事件的监听者 BroadcastReceiver是安卓应用中用于接收系统或应用发出的广播消息的组件。广播是一种全局的消息传递机制可以用于不同组件之间的通信。 BroadcastReceiver的生命周期 BroadcastReceiver的生命周期非常简单 当接收到广播时系统会创建BroadcastReceiver实例并调用onReceive()方法。onReceive()方法执行完毕后BroadcastReceiver实例就会被销毁。 示例代码 下面是一个简单的BroadcastReceiver示例 public class MyBroadcastReceiver extends BroadcastReceiver {private static final String TAG MyBroadcastReceiver;Overridepublic void onReceive(Context context, Intent intent) {String action intent.getAction();if (action ! null action.equals(Intent.ACTION_BATTERY_LOW)) {Log.d(TAG, onReceive: Battery low!);Toast.makeText(context, 电池电量低, Toast.LENGTH_SHORT).show();} else if (action ! null action.equals(Intent.ACTION_POWER_CONNECTED)) {Log.d(TAG, onReceive: Power connected!);Toast.makeText(context, 电源已连接, Toast.LENGTH_SHORT).show();}} }注册BroadcastReceiver BroadcastReceiver可以通过两种方式注册 静态注册在AndroidManifest.xml中注册应用未启动时也能接收广播。动态注册在代码中注册需要在适当的时候取消注册。 动态注册示例 // 在Activity中动态注册BroadcastReceiver public class MainActivity extends AppCompatActivity {private MyBroadcastReceiver receiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 创建BroadcastReceiver实例receiver new MyBroadcastReceiver();// 创建IntentFilter并添加感兴趣的actionIntentFilter filter new IntentFilter();filter.addAction(Intent.ACTION_POWER_CONNECTED);filter.addAction(Intent.ACTION_POWER_DISCONNECTED);// 注册BroadcastReceiverregisterReceiver(receiver, filter);}Overrideprotected void onDestroy() {super.onDestroy();// 取消注册BroadcastReceiverunregisterReceiver(receiver);} }ContentProvider数据共享的桥梁 ContentProvider是安卓应用中用于在不同应用之间共享数据的组件。它提供了一种统一的接口来访问和操作数据可以是SQLite数据库、文件、网络等。 ContentProvider的生命周期 ContentProvider的生命周期由系统管理通常在应用启动时创建在应用终止时销毁。主要方法包括 onCreate()ContentProvider创建时调用。query()查询数据。insert()插入数据。update()更新数据。delete()删除数据。getType()返回数据类型。 示例代码 下面是一个简单的ContentProvider示例 public class MyContentProvider extends ContentProvider {private static final String AUTHORITY com.example.myapp.provider;public static final Uri CONTENT_URI Uri.parse(content:// AUTHORITY /items);private MyDatabaseHelper dbHelper;Overridepublic boolean onCreate() {Context context getContext();dbHelper new MyDatabaseHelper(context);return true;}NullableOverridepublic Cursor query(NonNull Uri uri, Nullable String[] projection, Nullable String selection,Nullable String[] selectionArgs, Nullable String sortOrder) {SQLiteDatabase db dbHelper.getReadableDatabase();Cursor cursor db.query(items, projection, selection, selectionArgs,null, null, sortOrder);cursor.setNotificationUri(getContext().getContentResolver(), uri);return cursor;}NullableOverridepublic String getType(NonNull Uri uri) {return vnd.android.cursor.dir/vnd.example.items;}NullableOverridepublic Uri insert(NonNull Uri uri, Nullable ContentValues values) {SQLiteDatabase db dbHelper.getWritableDatabase();long id db.insert(items, null, values);getContext().getContentResolver().notifyChange(uri, null);return Uri.parse(CONTENT_URI / id);}Overridepublic int delete(NonNull Uri uri, Nullable String selection, Nullable String[] selectionArgs) {SQLiteDatabase db dbHelper.getWritableDatabase();int count db.delete(items, selection, selectionArgs);getContext().getContentResolver().notifyChange(uri, null);return count;}Overridepublic int update(NonNull Uri uri, Nullable ContentValues values, Nullable String selection,Nullable String[] selectionArgs) {SQLiteDatabase db dbHelper.getWritableDatabase();int count db.update(items, values, selection, selectionArgs);getContext().getContentResolver().notifyChange(uri, null);return count;} }ContentProvider的应用场景 在不同应用间共享数据访问系统提供的ContentProvider如联系人、媒体库等 四大组件的交互 安卓应用的强大之处在于四大组件之间可以相互协作。例如 Activity可以启动Service执行后台任务。Service可以通过BroadcastReceiver发送状态更新。BroadcastReceiver可以启动Activity或Service。ContentProvider可以为其他组件提供数据。 总结 安卓开发的四大组件是构建安卓应用的基础每个组件都有其独特的功能和生命周期。掌握这些组件及其生命周期能够帮助你开发出更加高效、稳定和用户友好的安卓应用。 在实际开发中你需要根据应用的需求合理选择和使用这些组件并理解它们之间的交互方式。希望本文能够帮助你深入理解安卓开发的核心概念提升你的开发技能。 常见问题解答 Activity和Service有什么区别 Activity是用于与用户交互的组件而Service是用于在后台执行任务的组件没有用户界面。 BroadcastReceiver有什么作用 BroadcastReceiver用于接收系统或应用发出的广播消息可以用于不同组件之间的通信。 ContentProvider适用于什么场景 ContentProvider适用于在不同应用之间共享数据的场景例如访问系统联系人、媒体库等。 Service有哪两种启动方式 Service有启动式Started Service和绑定式Bound Service两种启动方式。 Activity的生命周期中哪些方法是必须实现的 Activity的生命周期中onCreate()方法是必须实现的其他方法可以根据需要选择性实现。 通过掌握这些基础知识你将能够更加自信地开发安卓应用处理各种复杂的开发场景。
http://www.w-s-a.com/news/356646/

相关文章:

  • 世界杯最新排名泉州seo网站关键词优
  • 广州公司网站提供如何推广新品
  • 网站建设如何描述沈阳网站建设推广平台
  • 用dw制作个介绍家乡网站学生个人简历
  • 建设银行企业网站访问不了wordpress搬到谷歌服务器
  • 网站建设与网站优化销售别墅庭院园林景观设计公司
  • 沈阳红方城网站建设专业的微网站哪家好
  • 医院网站asp东营信息发布平台
  • 网站全站建设开题报告范文南京本地网站
  • 网站漏洞扫描工具wampserver集成环境搭建了一个织梦cms网站
  • 如何在局域网上做网站宁波设计公司排行榜
  • 自己的电脑做网站服务器吗百度搜索风云榜总榜
  • 做化妆品的一些网站企业网站建设与营运计划书
  • 重庆速代网络科技seo整站优化服务教程
  • 成都比较好的装修设计公司seo3的空间构型
  • 开发商建设审批网站成都创意设计公司
  • 百度快照比网站上线时间早wordpress新建阅读量字段
  • 国家工程建设标准化协会网站网站开发工具有
  • 上海网站建设集中公关公司组织架构图
  • wordpress副标题的作用百度网站标题优化
  • 大连哪家公司做网站比较好wordpress 判断用户组
  • 网站空间1g多少钱东莞公司高端网站建设
  • 网站服务器出错是什么意思做餐饮酒店网站
  • 房地产网站建设策划方案网站建设教程简笔画
  • 3d室内设计软件wordpress本地优化加速版
  • 南京高新区规划建设局网站石家庄哪里做网站比较好
  • 免费培训课程网站优化的方式
  • 做网站要固定电话在家自己做网站
  • 招聘网站开发视频新手如何做网站维护
  • flash 网站欣赏国外做的比较好的网站有哪些