2013-07-03 150 views
4

我想知道,爲什麼ActivityRecognitionClient沒有方法來請求更新與標準的Java偵聽器作爲參數?更奇怪的是,在同一時間LocationСlient有such method,它的效果很好。Android監聽器或廣播接收器的活動識別?

Official example活動識別看起來很糟糕。許多耦合和樣板代碼。它看起來像IntentService是處理來自ActivityRecognitionClient的更新的唯一變體。這非常不舒服。

@Guid from Android Team,它爲什麼會發生?

由於開發者希望看到requestActivityUpdates(間隔,聽衆)方法在谷歌Play服務的下一個版本。

現在,沒有人知道,是有可能使用廣播接收器從ActivityRecognitionClient處理更新?

回答

4

我想知道,爲什麼ActivityRecognitionClient沒有方法來請求更新與標準的Java偵聽器作爲參數?

許多優秀的問題都會根據專家的經驗產生一定程度的意見,但對這個問題的回答往往基於意見而不是事實,參考或具體專業知識。

除此之外,對於requestActivityUpdates()引用the documentation

一個常見用途的情況是,一個應用程序要在後臺監控活動,並在檢測到特定活動時執行的操作。要做到這一點而不需要始終處於耗費資源背景的服務,檢測到的活動將通過意向傳遞。應用程序指定一個PendingIntent回調(通常是一個IntentService),當檢測到活動時將會調用該回調。

 

看起來IntentService是從ActivityRecognitionClient處理更新的唯一變量。

不是。

現在,有誰知道,是否有可能使用BroadcastReceiver處理來自ActivityRecognitionClient的更新?

有幾種類型的PendingIntent,從各種工廠方法創建。示例顯示使用getService()來創建將調用startService()PendingIntent。歡迎您使用其他PendingIntent,如getBroadcast()之一,這將調用sendBroadcast()

+0

CommonsWare,謝謝你的回答!你提到getBroadcast()和sendBroadcast()是很棒的,它對我來說是一個謎題。無論如何,我仍然不滿意培訓的質量,以及API中請求方法的不一致性。希望在問題中的反饋將會被Android Team中的人聽到。 – AlexKorovyansky

+1

@korovyansk:「希望在問題中的反饋將會被Android Team中的人聽到」 - 這種可能性幾乎與您被閃電擊中的機率相當。 StackOverflow用於問答,而不是提供反饋。如果您有機會與Google工程師進行互動,在舉辦活動或環聊等活動時,這將是提出您的擔憂的好時機。 – CommonsWare