2012-08-29 88 views
0

我有我的接收器的代碼Android的:不能接收廣播PACKAGE_REMOVED

BroadcastReceiver pkgRemoveReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      // do my stuff 
     } 
    }; 
    IntentFilter filter = new IntentFilter(); 
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED); 
    registerReceiver(pkgRemoveReceiver, filter); 

所以,當一個應用程序從設備上我可以做一些簿記刪除。但是,我無法收到廣播。上面的代碼有問題嗎?

Thx! 拉胡爾。

+0

通過「每當一個應用程序從設備我可以做一些簿記刪除」你的意思是你的應用程序或任何應用程序? PS:弱接受比率。 –

+0

不是我的應用程序。任何其他應用程序,但不是我的是。我注意到了接受比例。今天會接受。 – rahul

+0

@ WebnetMobile.com:你確定你的應用程序仍在運行?如果不是,那麼它將不會收到廣播。如果您希望在應用關閉時收到廣播事件,則可以在清單文件中指定廣播接收器。 –

回答

3

嘗試爲:

IntentFilter filter = new IntentFilter(); 
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED); 
    filter.addDataScheme("package"); // add addDataScheme 
    registerReceiver(pkgRemoveReceiver, filter); 

    BroadcastReceiver pkgRemoveReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // do my stuff 
     if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) { 
      Toast.makeText(context, "ACTION_PACKAGE_REMOVED", Toast.LENGTH_LONG).show(); 
      } 
    } 
};