应用程序关闭时,BroadcastReceiver不会收到

时间:2017-11-12 07:12:18

标签: android android-broadcastreceiver

我知道这个问题类似于BroadcastReceiver的许多问题,但正如我所读到的,他们没有解决方案。 BroadcastReceiver的教程告诉它即使应用程序没有在后台运行也能正常工作,我的问题是当app未运行时我无法使用它 我试图从主要活动呼叫广播,使用服务和.... 但他们没有解决我的问题。

这是我的代码:

MyReceiver java Class:

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"BroadCast Trigger",Toast.LENGTH_SHORT).show();
    }
 }

另外MyManifest代码:

<receiver
    android:name=".MyReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="android.media.VOLUME_CHANGED_ACTION" />
    </intent-filter>
</receiver>

2 个答案:

答案 0 :(得分:0)

我发现无法以编程方式在Huawei Devices中激活BroadcastReceiver,但这里有一个解决方案,可以找到设备类型,并在这方面做一些必要的操作,例如向用户显示警告以手动激活它。

        if ("huawei".equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
        // Do Needed Action
    }

答案 1 :(得分:0)

我在使用Android 7的Huawey Honor上面临同样的问题。在索尼和中兴设备上,BroadcastReceiver按预期工作。但是在Honor上它工作了一段时间并且突然停止了。 我发现,这个问题与重新启动无关。我重新启动设备并广播接收器工作。但有时,它会在没有重新启动的情况下停止。

首先,我根据此解决方案将我的应用添加到受保护列表: "Protected Apps" setting on Huawei phones, and how to handle it

但它没有帮助:(

然后,根据此建议,我向我的应用添加虚拟辅助功能服务: Broadcast Receiver Not Working After Device Reboot in Android

问题解决了!