繁体   English   中英

BroadcastReceiver android - 关闭应用程序后有时会继续,有时不会

[英]BroadcastReceiver android - Sometimes it continues after closing the app, sometimes not

我有一个 BroadcastReceiver:

public class AlarmReceiver extends BroadcastReceiver {


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

// show will check date and return 0 or 1.

        if(show == 1) {

            //notify
            Intent intent2 = new Intent(context, MainActivity.class);
            showNotification(context, "title", "description", intent2);

        }

        AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intentn = new Intent(context, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intentn, 0);
        Calendar time = Calendar.getInstance();
        time.setTimeInMillis(System.currentTimeMillis());

// set next alarm, I also have this in my MainActivity to run it first time every 15 min (900 sec):

        if(android.os.Build.VERSION.SDK_INT>=23) {
            alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + (1000*900), pendingIntent);
        }
        else{
            alarmMgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000*900), pendingIntent);
        }

    }

在清单中我有这个:

<receiver
            android:name=".AlarmReceiver"
            android:enabled="true"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

问题是它有时会播放,有时不会。 有时当我关闭应用程序时它会继续播放,有时则不会。 任何想法为什么? 我在 android 8 中进行测试。

消除:

android:permission="android.permission.RECEIVE_BOOT_COMPLETED"

这样,您是说广播的发送者必须持有此权限,这是不正确的。

不过,您的应用需要为android.permission.RECEIVE_BOOT_COMPLETED提供<uses-permission>元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM