如何在不受打瞌睡安卓影响的情况下构建广播应用程序



引用此库 https://github.com/iammert/RadioPlayerService我有这个代码来播放/暂停收音机

   if (!mRadioManager.isPlaying())
                mRadioManager.startRadio(RADIO_URL[0]);
            else
                mRadioManager.stopRadio();

和做过程的方法

 @Override
public void onRadioStarted() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO Do UI works here.
            mTextViewControl.setText("RADIO STATE : PLAYING...");
        }
    });
}
@Override
public void onRadioStopped() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO Do UI works here
            mTextViewControl.setText("RADIO STATE : STOPPED.");
        }
    });
}

我的广播类

public class MyBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Intent intent1 = new Intent(context, MainActivity.class);
    intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent1);
}

但是在 android 7 中,当我在 5-8 分钟后关闭屏幕时,收音机停止播放音乐。我在后台做了另一个例子,它仍然是同一件事。请谁能建议我如何在不受打瞌睡影响的情况下构建广播应用程序

您必须为此创建前台服务。通常,当任何长时间的进程正在运行(如下载,播放音乐或vieo等(时,它会在状态栏和锁定屏幕中创建通知。

: 对于用户希望系统立即执行或不中断执行的任务,应仅使用前台服务。此类情况包括将照片上传到社交媒体,或者即使音乐播放器应用程序不在前台时也能播放音乐。不应仅仅为了防止系统确定应用处于空闲状态而启动前台服务。

https://developer.android.com/guide/components/services.html#Foreground

下面的链接是一个广泛的示例。 请记住,这需要另一个权限级别。https://developer.android.com/training/scheduling/wakelock.html

相关内容

最新更新