android-studio - Android 后台服务正在运行但在重新启动时应用程序即使在实施广播接收器后也不会启动
问题描述
我已经设置了一个广播接收器来启动 BOOT_COMPLETED 意图的服务。
接收者在清单中注册
<receiver android:name=".Receiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
RECEIVE_BOOT_COMPLETED 权限也在清单中给出。
我的应用程序在后台运行
package com.rebootandroid.reboot;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.util.Log;
import java.util.Set;
public class Receiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i("Booted", "true");
Log.i("action", action);
NotificationCompat.Builder b = new NotificationCompat.Builder(context.getApplicationContext(), "defautl")
.setAutoCancel(true)
.setSmallIcon(R.mipmap.ic_launcher_round)
.setContentTitle("Boot Intent Received")
.setContentText("App starting....");
NotificationManagerCompat nmc = NotificationManagerCompat.from(context.getApplicationContext());
nmc.notify(111111111, b.build());
Intent inTent = new Intent(context.getApplicationContext(), RebootService.class);
inTent.putExtra(RebootService.INTENT_EXTRA, "RECEIVER_CLASS");
context.getApplicationContext().startService(inTent);
}
}
但是当我重新启动设备时,我在 logcat 中看到 android.intent.action.BOOT_COMPLETED 被触发并带有标志 FLAG_EXCLUDE_STOPPED_PACKAGES... 这导致我的应用程序没有收到启动完成的意图...
我正在使用使用 android 7.1 的 OPPO A71 和使用 android 6.0.1 的 Redmi 4a
免责声明:相同的代码在模拟器上完美运行。在模拟器中,任何标志都不会触发 BOOT_COMPLETED 意图...
解决方案
推荐阅读
- java - Leak Canary:如何准确解释此内存泄漏日志
- tostring - 使用 Apache Calcite 的 SqlParse API 解析 SQL 语句时出现运行时异常,并连接到它的组成标记
- bash - 使用 exec.Command 运行程序,将标准输出重定向到 /dev/null
- javascript - node.js JSON.Srigify 仅值
- angular - matDatepicker 。matDatepickerFilter -> 在日期字段中输入 oldDate 后无法选择日期
- c++ - 聚合与非聚合结构/类
- python - AttributeError:模块“时间”在 IPython.Display 中没有属性“时钟”
- javascript - 如何查看我的对象是否循环更新?
- javascript - 放大后如何计算相对于画布的新光标位置?
- reactjs - 无法满足使用 TypeScript 的反应测试库渲染函数的包装器参数