2

嗨我正在開發Android應用程序,並且我正在使用活動識別。我下載了Google的示例應用程序以進行活動識別。它工作正常,沒有任何錯誤。但我的主要問題是在以下順序:Android活動識別不能正常工作

我安裝該應用程序,我開始活動識別。 不停止該服務我卸載帽子應用程序。 再次安裝相同的應用程序。我的應用程序開始聆聽活動識別,但沒有問我。

所以我想知道它是如何工作的。爲什麼在卸載我的應用程序後繼續使用該服務。下次它開始監聽活動結果。

我錯過了什麼。或者做錯了什麼?

需要幫助謝謝。

回答

1

聽起來好像你不停止傾聽認可意圖。

要停止聽這些,你需要確保你在呼喚:

yourActivityRecognitionClient.removeActivityUpdates(youtActivityRecognitionIntent); 

把上面的的onDestroy()函數,它應該停止監聽關於停止服務的意圖。

+0

我想繼續在後臺繼續。所以我不想阻止它。但如果我再次卸載安裝我的應用程序,它將如何繼續。我必須停止它或者當用戶卸載我的應用程序或安裝安裝後,我必須檢查它是否正在運行,然後停止那個時間...所以它是正確的行爲檢測。爲什麼重新安裝應用程序後重新安裝應用程序,而不打電話開始聽...需要幫助謝謝重播... – nilkash

+0

我明白它的方式是,活動識別,一旦註冊更新,將繼續尋找更新直到其未註冊,即使您的應用程序未運行。卸載應用程序將刪除您的代碼,因此它不應該觸發監聽活動更新的任何內容,但除非它已被停止,否則我認爲您的客戶端仍將坐在內存中試圖獲取更新。 – jsrsoftware

+0

OH那麼如何解決這個問題呢?有沒有辦法做到這一點。至少有任何方式來檢查它是否在第一次加載時運行。 – nilkash

1

您還應該取消pendingIntent,使用pendingIntent.cancel()