2017-06-15 46 views
3

Refered到該庫https://github.com/iammert/RadioPlayerService 我有播放/暫停無線電如何建立一個電臺應用程序,而不受瞌睡android影響?

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分鐘無線電停止後關閉屏幕。我在後臺做了另一個例子,它仍然是一樣的。請任何人都可以建議我如何建立一個電臺應用程序,而不受瞌睡影響

+0

https://developer.android.com/reference/android/os/PowerManager.WakeLock.html – user1767754

+0

@ user1767754拿着PARTIAL_WAKE_LOCK不足以阻止打盹模式 –

+0

如果您的應用程序超出內存,這將是遇難,即使你有一個喚醒鎖。也許這發生了? – user1767754

回答

2

您必須創建Foreground服務。通常當任何長時間的進程正在運行時(比如下載,播放音樂或者vieo等),它會在狀態欄和鎖定屏幕上創建通知。

注意:您應該只使用任務的前臺服務用戶希望系統立即或不中斷運行。這種情況包括將照片上傳到社交媒體,或者即使在音樂播放器應用程序不在前臺時也播放音樂。您不應該僅僅爲了防止系統確定您的應用程序閒置而開始前臺服務。

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

+0

感謝您的回覆和您的建議,我會嘗試爲此做一個例子,如果你能建議我一個例子它會很好,謝謝你 –

+0

如何啓動前臺服務,你可以通過鏈接找到。對於音樂面板控制,我發現這個:http://sapandiwakar.in/android-media-player-lock-screen/ – shagi

+0

謝謝你,我真的很感激,你救了我! –

0

下面的鏈路是一個廣泛的例子。請記住,這需要另一個權限級別。 https://developer.android.com/training/scheduling/wakelock.html

+0

感謝您的回覆和您的建議,但是如果我點擊按鈕以關閉屏幕會發生什麼? –

+0

根據打盹模式下的文檔*系統忽略喚醒鎖。* https://developer.android.com/training/monitoring-device-state/doze-standby.html – shagi

相關問題