【问题标题】:BroadcastReceiver Doesnt work if I close Recent Apps如果我关闭最近的应用程序,BroadcastReceiver 不起作用
【发布时间】:2016-12-08 14:27:35
【问题描述】:

我正在尝试制作一个应用程序,如果触发了特定的事情,该应用程序将被调用。在我的应用程序中,这件事是短信。当收到新短信时,我会阅读其内容并查找特定内容,如果它出现警报,则会继续。

如果应用程序打开它就可以正常工作。接收器触发良好...但是当我清除最近的应用程序接收器未触发时。我在这里搜索了很多.. 我们大多数人都说,当应用程序处于 STOPPED_STATE 状态时,它不会收到任何有关特定事情发生的通知。

我有一个 android 设备 Hauwei 和 android 版本 4.4.4,当我清除我最近的应用程序时,它完全破坏了我的应用程序。接收器停止工作。

我试图创建一个服务并返回 start_sticky,对我来说,只有前台进程才有可能,而不是后台任务。但我不想推送通知说 myApplication 在您的设备中运行。

现在我想要的是我需要一个即使应用程序关闭也应该接收 SMS_RECEIVED 的接收器(这里我不是在谈论应用程序的 STOPPED_STATE)。

在 clearRecentApps myApp 处于 STOPPED_STATE 之后(我可以在 myApps FORCE_STOP 按钮禁用的设置中看到它)。但同时 WATSAPP 、 FACEBOOK 和 CLASSOFCLANS 不是 STOPPED_STATE(在设置中那些 FORCE_STOP 按钮仅启用)。没有任何前台通知。

他们怎么样...请帮帮我...这对我来说需要很多天...

如果我错了,请告诉我。我是 android 新手.. 任何帮助将不胜感激..

【问题讨论】:

  • 是的,您需要在这里使用服务。在 startService 中表示在 onCreate 中注册接收器,在 onDestroy 中取消注册它。并 startService 并返回 STICKY。
  • 我已经尝试过了,但它不起作用......如果我清除最近的应用程序我的应用程序服务不起作用......我不知道它停止工作
  • 你能分享你注册接收器的代码吗?以编程方式还是清单方式?
  • @rafa Iam 仅将我的接收器放入清单中。我没有以编程方式注册它
  • @Mr.Popular : 你从 onStartCommand 返回什么作为 startMode ?

标签: android service broadcastreceiver


【解决方案1】:

这可能是一种解决方法,但为了让您的服务即使在您的应用关闭时也能继续运行,您必须在 服务的 onDestroy() 方法中再次启动您的服务 .

@Override
public void onDestroy() {
    super.onDestroy();
    startService(new Intent(this, YourServiceClass.class));

}

【讨论】:

  • 我试过了.. 但是 onDestroy 方法没有被调用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 2020-08-02
  • 1970-01-01
相关资源
最近更新 更多