【原创】Service监听到事件后关闭启动自己的Activity
来源:互联网 发布:淘宝追加评论规则 编辑:程序博客网 时间:2024/05/16 23:35
今天写代码的时候,遇到一个小问题,逻辑过程如下:
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);
}
- 【原创】Service监听到事件后关闭启动自己的Activity
- 【原创】Service如何关闭启动自己的Activity
- 【原创】Service如何关闭启动自己的Activity
- Service如何关闭启动自己的Activity
- Service如何关闭启动自己的Activity
- android service 启动和关闭不在同一个Activity的问题
- android Activity加载完成后的监听事件
- Service如何关闭启动自己的Activit…
- Android Service启动到Activity
- service 在activity关闭后弹出对话框
- Tomcat启动与关闭事件监听
- Tomcat启动与关闭事件监听
- Android Activity启动、关闭、Activity返回结果到启动它的Activity
- android89--Activity怎么和service绑定,怎么在activity中启动自己对应的service
- Activity怎么和service绑定,怎么在activity中启动自己对应的service
- 监听popwindow的关闭事件
- Activity通过bindService启动Service后Activity和Service之间的通信!
- Activity通过bindService启动Service后Activity和Service之间的通信!
- 关于curl返回数据乱码的问题解决方法
- ui树形组建的渲染 tag菜单初始化展现控制 (树形)
- 【原创】Service如何关闭启动自己的Activity
- [转]关于Activity和Task的设计思路和方法
- json组装(只要符合控件要求的格式即可,可以比控件要求的字段多)
- 【原创】Service监听到事件后关闭启动自己的Activity
- Android中BroadCastReceiver使用
- [BZOJ 1233][Usaco2009Open]干草堆tower:单调队列
- echart require js 回调
- 深入探讨 Android 传感器
- tab 页面切换
- 微信,QQ,微博分享
- 【原创】在Android模拟器上实现监听手机摇晃事件
- 计时获取验证码