我想构建一个应用程序来监听传入的消息,广播侦听器将调用一个Activity来做一些事情,它工作正常。 但是当应用被杀死时,广播监听器就会停止收听。
那么我如何让broadcastlistener听incomingsms?就像android的默认短信应用程序一样?
这是我的Broadcastlistener文件:
public class IncomingSms extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
//DoSomeAction
Intent myintent = new Intent(context,MainActivity.class); //It will be killed once later.
context.startActivity(myintent);
}
}
这是我的清单文件:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="ANDROID.PERMISSION.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name=".IncomingSms" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
答案 0 :(得分:0)
您可以创建一个新服务,我们称之为“MyService”
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// Makes the service sticky, so that it gets restarted automatically.
return Service.START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
// Your receiver code can go here.
}
}
然后,您可以通过以下活动启动此服务:
startService(new Intent(this, MyService.class));
答案 1 :(得分:-1)
从broadcastreceiver
调用另一种方法不是一个好主意。如果你想做任何这样的事情,请在broadcastreceiver
类中进行。
对清单中的接收器也设置enabled = true。