パッケージのアンインストールをリッスンするアプリケーション用のブロードキャストレシーバーがあり、要件として透過的なアクティビティを開始します。(私のアプリケーション自体には、他のアプリケーションにのみ関連するパッケージをアンインストールするオプションがあります)次のようにマニフェストにレシーバーを登録しました。
<receiver android:name=".PackageRemoveReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
私のレシーバークラスは次のとおりです。
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
this.context = context;
boolean replacing = intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false);
Log.d("Log","getting receivers");
if(replacing){
......
......
startActivity(context);
}
private void startActivity(Context context) {
// TODO Auto-generated method stub
Intent i = new Intent(context, TransparentActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
だから、意図を聞いた後、それは私の活動を開いています。ここまでは正常に動作しています。
しかし、設定から別のアプリケーション(私のアプリケーション以外)をアンインストールするようなことをしているときはいつでも、それは常に私の透過的なアクティビティをリッスンして開きます。
特定のパッケージが削除されたときはいつでも、ブロードキャストのみを実行したいと思います。はいの場合、それを行う方法は可能ですか?