の順番でBroadcastが投げられる。
個人的には違和感ありまくりなんだけど、内部的には一旦削除してから追加していて
このような挙動になっているんだと思う。(確かめてはないけど...)
しかし、パッケージ更新時のみPACKAGE_REMOVEDやPACKAGE_ADDEDの処理を
スキップしたいことはあると思う。そんな時は以下のようにインテントからデータを
抜き出して判定してやればいい。
public class PackageMonitor extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); // パッケージ更新の場合はスキップ if (intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) { return; } if (Intent.ACTION_PACKAGE_ADDED.equals(action)) { // パッケージが追加された時にしたい処理 } else if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) { // パッケージが削除された時にしたい処理 } } }
0 件のコメント:
コメントを投稿