博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【原创】Service监听到事件后关闭启动自己的Activity
阅读量:3575 次
发布时间:2019-05-20

本文共 1321 字,大约阅读时间需要 4 分钟。

今天写代码的时候,遇到一个小问题,逻辑过程如下:

1 在mActivity中启动一个mService;

2 mActivity负责通知用户信息,运行在前台;

3 mService负责监听手机摇晃事件,运行在后台;

4 当mService监听到摇晃事件后,关闭启动mService的mActivity。

 

了解了逻辑过程后,给出如下思路:

思路1:在mService中获取mActivity的实例m,当需要关闭mActivity时,直接执行m.finish(),关闭mActivity。

在根据思路1编写程序的过程中,遇到了一个严重的问题,我在mService中无法获得mActivity的实例m。(PS:是我获取不到,不代表别人获取不到,换句话说,是我太菜了……)具体代码见我的上上篇博文。

思路2:当监听到手机摇晃事件后,在mService向mActivity发送带有特定action的广播,前提是在mActivity设置好广播监听器BroadCastReceiver。当mActivity接收到广播后,判断一下是否是对应的action,如果是,关闭自己(mActivity.this.finifh();)如果不是,啥也不做。部分代码如下:

mService中,关键位置添加以下代码:

    指定广播目标Action:Intent intent = new Intent(actionString);

  并且可通过Intent携带消息 :intent.putExtra("msg", "hi,我通过广播发送消息了");

  发送广播消息:Context.sendBroadcast(intent );

 

在mActivity中,添加以下代码:

UpdateReceiver receiver;

 

public class UpdateReceiver extends BroadcastReceiver {

 

     public void onReceive(Context context, Intent intent) {

     Log.e("sendBroadcast","receive");

     boolean close = intent.getBooleanExtra("CLOSE", false);

     if (close)

     NoticeActivity.this.finish();

     }

}

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

 

//监听广播,获得service传过来的参数,判断是否关闭本activity

receiver = new UpdateReceiver();

IntentFilter filter = new IntentFilter();

filter.addAction("com.iqiwu.sendMsg");

this.registerReceiver(receiver, filter);

}

转载地址:http://bjsgj.baihongyu.com/

你可能感兴趣的文章
西南科技大学OJ题 带权有向图计算1063
查看>>
oracle主键自增触发器编写
查看>>
String与StringBuilder与StringBuffer三者的差别
查看>>
各种IO流之间的关系和区别
查看>>
SSM如何实现上传单图片
查看>>
SSM环境下java如何实现语音识别(百度语音识别版)
查看>>
ajax方法参数的用法和他的含义
查看>>
数据库基础技巧及用法
查看>>
实用方法:无request参数时获得当前的request的方法
查看>>
JS操作数组常用实用方法
查看>>
springboot实现CAS的server服务器端的搭建,并实现链接mysql数据库,自定义加密算法
查看>>
Python超详细的安装教程
查看>>
小甲鱼Python第一讲(我和Python的第一次亲密接触)
查看>>
小甲鱼Python第三讲(小插曲之变量和字符串)
查看>>
小甲鱼Python第十一讲(一个打了激素的数组2)
查看>>
小甲鱼Python第十三讲(戴上了枷锁的列表)
查看>>
小甲鱼Python第十四讲(各种奇葩的内置方法)
查看>>
小甲鱼Python第十五讲(格式化)
查看>>
小甲鱼Python第十七讲(Python的乐高积木)
查看>>
小甲鱼Python第十九讲(函数,我的地盘听我的)
查看>>