2014-01-24 73 views
5

我發現如何檢測卸載事件並測試下面的代碼。在卸載我的android應用程序之前,我該怎麼做?

Receiver.java

@Override 
public void onReceive(Context context, Intent intent) { 
    String action = intent.getAction(); 
    Log.d(TAG, "received broadcast : " + action); 
} 

的manifest.xml

<receiver android:name="....base.BaseAppReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.PACKAGE_REMOVED"/> 
       <data android:scheme="package"/> 
      </intent-filter> 
     </receiver> 

但檢測時只其他應用程序卸載。 我想在卸載「我的」應用程序而不是「其他」應用程序之前做一些事情。 請讓我知道我的應用程序如何檢測卸載事件處理的東西,然後再卸載我的應用程序,如果可以的話。

+0

你能改說你的問題嗎? – Espanta

回答

3

這是不可能的,對不起。如果您將文件放入正確的目錄中,它們將自動刪除,但卸載應用程序後無法完成其他工作。

+0

謝謝...我必須更改我的應用程序的結構。 – nao0811ta

+0

我想通過卸載刪除保存的數據。 哪裏是正確的目錄? – nao0811ta

+2

@ nao0811ta:在卸載時會刪除內部存儲上的所有內容('getFilesDir()','getCacheDir()',標準SQLite數據庫和'SharedPreference'位置,'openFileOutput()'等)。此外,存儲在'getExternalFilesDir()'和'getExternalCacheDir()'中的文件將在卸載時被刪除。 – CommonsWare

1

你不能聽你自己的卸載事件。試想一下你正試圖調用任何將要卸載的類,怎麼可能呢?

如果你想實現,那麼你需要做一個更多的應用被稱爲看門狗當它被卸載它會照顧你的應用程序..

希望它會幫助你.. !!!