Android 下实现程序关闭后监听取消
2010-03-04 05:15:00 来源:WEB开发网在先前的文章中,接收短信的监听器会一直活在后台,哪怕程序被关闭,监听器会一直存在并在收到消息时激活主程序。在一般的设计中,都不会这么做,因为这是浪费资源且得不到良好用户体验的。因此需要在自己的程序并闭后,将监听器取消。前文链接(点击进入)
一、建立一个后台服务,该服务用于接收消息并将消息广播给BroadcastReceiver。由于服务可以被终止,终止时不再转发消息,后台的BroadcastReceiver也因此不再生效,会自动被GC回收。程序的目标也达到了
package com.demo;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.IBinder;
import android.telephony.gsm.SmsMessage;
public class ListenService extends Service {
public static final String SvrId = "RARNU.SERVICE.DEMO";
public static final String strACT = "android.provider.Telephony.SMS_RECEIVED";
private SMSMsgReceiver recv;
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
@Override
public void onCreate() {
IntentFilter filter = new IntentFilter(strACT);
recv = new SMSMsgReceiver();
registerReceiver(recv, filter);
super.onCreate();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
unregisterReceiver(recv);
super.onDestroy();
}
public class SMSMsgReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(strACT)) {
- ››程序员 不妨都写一写前端代码
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
更多精彩
赞助商链接