当前位置:   article > 正文

Android在Service服务中调用Activity活动的方法,实现UI界面更新操作_service调用activity方法

service调用activity方法

关于Service服务:

对于Android应用程序而言,由于手机屏幕和硬件资源的限制,通常只允许一个应用程序处于活动状态,呈现给用户,与用户交互信息,其他的应用则全部处于非活动状态。但是在很多实际应用中,即使不显示用户界面,也需要程序的正常运行,比如MP3播放器。用户在MP3用户界面中操作,选择MP3播放后,通常习惯会直接退出该界面,继续使用手机其他的应用,比如听音乐的同时上网、聊天等。为了满足上述用户需求,Android系统提供了Service组件,我们可以在Service组件中实现音乐播放功能。

Service是Android系统的服务组件,适用于开发没有用户界面,但是需要长时间在后台运行的功能。这些功能通常包括音乐的播放、网络数据的获得、耗时的运算等。Service一般由Activity组件启动,但是却不依赖于Activity,Service拥有自己的生命周期,即便启动它的Activity销毁,Service依然能够继续运行,直到自己的生命周期结束。

Service服务的用法,可以参考这篇文章:https://blog.csdn.net/qq15577969/article/details/80960175

一、首先在mainActivity中定义一个内部广播的类(广播接收器),用来接收服务传回的信息

  1. /**
  2. * 定义广播接收器,用于执行Service服务的需求(内部类)
  3. */
  4. private class ServiceNeedBroadcastReceiver extends BroadcastReceiver {
  5. @Override
  6. public void onReceive(Context context, Intent intent) {
  7. //这里是要在Activity活动里执行的代码
  8. }
  9. }

二、在MainActivity中声明两个变量并且在初始化的时候注册这个广播接收器的实例

  1. //声明一个操作常量字符串
  2. public static final String ACTION_SERVICE_NEED = "action.ServiceNeed";
  3. //声明一个内部广播实例
  4. public ServiceNeedBroadcastReceiver broadcastReceiver;
  5. /**
  6. * 注册广播实例(在初始化的时候)
  7. */
  8. IntentFilter filter = new IntentFilter();
  9. filter.addAction(ACTION_SERVICE_NEED);
  10. broadcastReceiver = new ServiceNeedBroadcastReceiver();
  11. registerReceiver(broadcastReceiver, filter);

四、在Service服务类中发送广播消息给Activity活动

  1. public class taskService extends Service {
  2. /** 调用startService()启动服务时回调 */
  3. @Override
  4. public int onStartCommand(Intent intent, int flags, int startId) {
  5. //在Service服务类中发送广播消息给Activity活动界面
  6. Intent intentBroadcastReceiver = new Intent();
  7. intentBroadcastReceiver.setAction(MainActivity.ACTION_SERVICE_NEED);
  8. sendBroadcast(intentBroadcastReceiver);
  9. return super.onStartCommand(intent, flags, startId);
  10. }
  11. /** 通过bindService()绑定到服务的客户端 */
  12. @Override
  13. public IBinder onBind(Intent intent) {
  14. return null;
  15. }
  16. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/133150
推荐阅读
相关标签
  

闽ICP备14008679号