2013-12-15 64 views
0

我正在製作一個應用程序,並且想知道該應用程序何時正在卸載。爲此,我使用了BroadcastReceiver,但我不知道我的代碼位於何處錯了嗎?(當我的應用程序unistalling,廣播接收器不能recive約unistalling任何消息) 這是我的應用程序的清單我正在製作一個應用程序,並想知道應用程序何時卸載

<receiver android:name="receiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.PACKAGE_ADDED"/> 
    <action android:name="android.intent.action.PACKAGE_DATA_CLEARED"/> 
    <action android:name="android.intent.action.PACKAGE_INSTALL"/> 
    <action android:name="android.intent.action.UID_REMOVED"/>  
    <action android:name="android.intent.action.PACKAGE_REMOVED"/> 
    <action android:name="android.intent.action.MEDIA_REMOVED"/> 
    <action android:name="android.intent.action.MEDIA_BAD_REMOVAL"/> 
    <action android:name="android.intent.action.BATTERY_OKAY"/>   
    <data android:scheme="com.example.testpermission"/> 
    </intent-filter> 

感謝。

回答

1

當您的應用程序正在卸載時,您無法獲得事件。見here。還有一個關於主題here的帖子。

+0

好吧,我在網上搜索一下,有是爲孩子的移動設備安裝應用程序的父母的一些應用程序,當孩子們想要取消它的阻止時,該應用程序要求通過...這些應用程序如何工作? – user3090559

+0

@ user3090559這是一個非常不同的場景。我不知道它是如何實現的,但兒童電話需要運行一個自定義的ROM或特殊的啓動器(或者我不知道的第三個東西)。 – Warpzit

+0

@Warpzit我非常確定這些應用程序必須使用'Device Administration' API,這將執行企業策略。 http://developer.android.com/guide/topics/admin/device-admin.html – kaderud

0

你不能,但如果你在設備上安裝了第二個應用程序 - 你可以通過該應用程序獲得關於第一個卸載的記錄(據我記憶)。

我相信,應用程序不能由兩個原因監視其自帶的卸載:

  1. 這將使它更難卸載應用程序(一些邪惡的應用程序甚至可以嘗試做壞事時,他們的應用程序被刪除)。
  2. 如果你刪除應用程序 - 你不能運行它,或發送它的事件!應該關閉該應用程序以進行徹底刪除。

有關如何從第二個應用程序做到這一點: 你的第二個應用程序應該是一個接收到ACTION_PACKAGE_REMOVED事件(閱讀廣播接收器,並看到:http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_REMOVED

+0

thanks.why我無法理解這個應用程序是否直接執行操作?如果我想爲第一個應用程序製作第二個應用程序並對其進行protoct,那麼第二個應用程序如何識別第一個應用程序是不會泄漏的? – user3090559

+0

我編輯了我的答案。如果它幫助你,請將其標記爲已回答。 –

相關問題