2016-12-26 56 views
0

編輯 爲了清晰起見,我刪除了所有內容。因爲我將簡化我對信息的請求: 當移動設備處於睡眠狀態或應用程序不在前臺時,處理接收移動設備上的消息時接收消息的最佳方式是什麼?Android Wear Wake Mobile

在這兩種情況下,即使我通過穿戴將消息發送到移動設備,移動設備也不會接收或處理它們。我不知道哪個。

如果已經閱讀以下內容: 1)部分wakelocks - 沒有好,我不想真正保持CPU清醒 2)處理器 3)廣播接收器 4)服務

我不知道到底我應該怎樣當應用程序不在前臺和/或睡着時,爲了處理與我的應用程序的消息。

如果onMessageReceieved()應該在睡眠期間或應用程序不在前臺時讓我知道這也是有益的,因爲現在我認爲它不應該基於我在我的應用程序中看到的。

此外,我正在使用livelisteners而不是偵聽器服務。這是我的問題嗎?如果我切換到wearablelistenerservice類將解決我的問題,並正常工作? 我這樣做

@Override 
public void onConnected(Bundle connectionHint) { 
    if (Log.isLoggable(TAG, Log.DEBUG)) { 
     Log.d(TAG, "Connected to Google Api Service"); 
    } 
    Wearable.MessageApi.addListener(mGoogleApiClient, this); 
} 

,而不是如果我這樣做:

public class DataLayerListenerService extends WearableListenerService{ 

,並把我所有的代碼在那裏,然後做到這一點:

<service android:name=".DataLayerListenerService"> 
    <intent-filter> 
     <action android:name="com.google.android.gms.wearable.DATA_CHANGED" /> 
     <data android:scheme="wear" android:host="*" 
      android:path="/start-activity" /> 
    </intent-filter> 
</service> 

意志解決我不接受不在前臺並且手機在睡着時的消息問題?因爲這個意圖將作爲在後臺運行的服務?

回答

0

您可能想要檢查Keeping the Device Awake其中它討論了可以使用的不同方法,如keeping the CPU on

如前所述,

如果你需要保持CPU的運行,以完成一定的工作設備進入睡眠狀態之前,你可以使用一個叫做喚醒鎖定一個PowerManager系統服務功能。喚醒鎖定允許您的應用程序控制主機設備的電源狀態。

在給定的documentation中使用喚醒鎖可能會發現更多提示和信息。

+0

我很感謝您的回答,我曾嘗試嘗試使用部分喚醒鎖來保持CPU清醒。這是不成功的。加上效率很低,考慮到我希望每5-10分鐘使用一次這個功能,並且保持喚醒的狀態,等待看起來很愚蠢。我昨天在wakelocks上做了更多的閱讀並嘗試了這個。 –

0

使用擴展WearableListenerService並向清單添加服務的類在電話關閉時工作。現在我只需要實現主要饋送並與其交互,以更新主屏幕上的數據