【问题标题】:Android BroadcastReceiver Not Working When App Killed应用程序被杀死时Android BroadcastReceiver不工作
【发布时间】:2018-08-17 16:11:50
【问题描述】:

我正在尝试做一个应用程序来获取来电者号码,将其发送到我的 web api,获取响应并将响应显示为屏幕上的弹出窗口,其中包括有关呼叫的其他信息。这不会是一个公共应用程序。当我在模拟器上进行测试时,它在所有情况下都能按预期工作。我在手机上安装了应用程序并像在模拟器上一样对其进行了测试,并按预期工作。当我按下“最近使用的应用程序”按钮并将其滑出时,它突然停止接听电话并显示弹出窗口。我有正确的 AndroidManifest 条目。

AndroidManifest.xml

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.INTERNET" />

//other parts of manifest file


<receiver
        android:name=".CallReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>

BroadcastReceiver 类

public class PhonecallReceiver extends BroadcastReceiver  {

//some declarations

@Override
public void onReceive(Context context, Intent intent) {

    Date currentTime = Calendar.getInstance().getTime();
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("OnReceive");
    myRef.setValue("PhonecallReceiver onReceive.");
    //other codes

我添加了 Firebase 以查看来电时发生的情况。在模拟器上,它在所有情况下(应用滑出、屏幕锁定等)都会向 Firebase 添加一个条目,但是在我的手机上,它只会在应用在最近的应用中处于活动状态时才会将记录添加到 Firebase。

即使从最近的应用中刷出应用,我也需要接收来电数据。

手机:Android 7.0 上的 Xiaomi Redmi Note 4,应用了最新的可用更新。

【问题讨论】:

    标签: android broadcastreceiver


    【解决方案1】:

    用另一种方法解决了这个问题。而是在 AndroidManifest 文件中注册 BroadcastReceiver,创建了一个 Foreground 服务并在那里以编程方式创建了 BroadcastReceiver。此外,当 Activity 被销毁时,它也可能会终止服务。我在 onTaskRemoved 方法中添加了重新启动服务代码,以在服务与应用程序一起被杀死时重新启动服务。现在它适用于所有情况。不利的一面是,除非用户阻止它,否则它必须显示持续通知,这在我的情况下不是问题。

    【讨论】:

    • 您应该阅读有关 miui 细微差别与背景相关的内容。您可以手动将应用添加到白名单、自动启动等
    • 你能在这里上传你的代码吗?
    猜你喜欢
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    相关资源
    最近更新 更多