广播接收器问题

时间:2011-07-14 01:50:11

标签: java android

好的,所以我有一个应用程序,需要接收传入的短信,并发送短信给发件人。这个我可以设置好。问题是,我只希望广播接收器在服务启动时接收。我在服务中声明了接收器类。我在onDestroy中销毁引用(并取消注册接收器)。当应用程序编译并运行时,广播接收器永远不会运行。如果我在清单中进行delcare,它可以正常工作,但永远不会停止。接收器只是一直在醒来和处理。

2 个答案:

答案 0 :(得分:0)

您可以尝试实现此代码:

<receiver android:name=".mystuff" android:enabled="false">

PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(
            new ComponentName(context, mystuff.class),
            PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

... PackageManager.COMPONENT_ENABLED_STATE_DISABLED ...

答案 1 :(得分:0)

有一点需要注意的是,您需要在清单中声明Receiver文件。这实际上是通过手机注册您的服务。根据{{​​3}}

  

BroadcastReceiver对象仅在对onReceive(Context,Intent)的调用期间有效。一旦你的代码从此返回   功能,系统认为要完成的对象不再   活跃。

所以我所做的是在服务中定义我的onReceive(Context,Intent)并注册它。希望这会有所帮助。