参考这个库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.");
}
});
}MyBroadcast类
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分钟后关掉屏幕时,收音机就会停止播放音乐。我在后台做了另一个例子,这仍然是一样的。请有人建议我如何在不受打瞌睡影响的情况下构建一个无线电应用程序。
发布于 2017-06-15 08:04:54
您必须为此创建前景服务。通常在任何长进程运行时(如下载、播放音乐或vieo等)。它在状态栏和锁定屏幕中创建通知。
备注:您应该只对用户希望系统立即执行或不中断的任务使用前台服务。这种情况包括将照片上传到社交媒体,或者在音乐播放器应用程序不在前台的情况下播放音乐。您不应该仅仅为了防止系统确定您的应用程序是空闲的而启动前台服务。
https://developer.android.com/guide/components/services.html#Foreground
发布于 2017-06-15 08:08:51
下面的链接是一个广泛的例子。请记住,这需要另一个权限级别。https://developer.android.com/training/scheduling/wakelock.html
https://stackoverflow.com/questions/44561881
复制相似问题