1
私はアプリのリストを持っています。ユーザーがアプリを削除してからアプリリストを更新したいとき これを行うにはどうすればよいですか?私は検索し、放送受信機を使用して解決策を見つけた、それは最善の方法ですか?またはこれを行うための直接の方法が存在していますか?アクションの削除の結果をキャプチャできますか?アンドロイドアプリケーションパッケージを取り込む方法は?
私はアプリのリストを持っています。ユーザーがアプリを削除してからアプリリストを更新したいとき これを行うにはどうすればよいですか?私は検索し、放送受信機を使用して解決策を見つけた、それは最善の方法ですか?またはこれを行うための直接の方法が存在していますか?アクションの削除の結果をキャプチャできますか?アンドロイドアプリケーションパッケージを取り込む方法は?
まずあなたが唯一の削除にのみ興味ただ唯一、
<receiver
android:name=".receiver.AppStateReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="999">
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.QUERY_PACKAGE_RESTART" />
<data android:scheme="package" />
</intent-filter>
</receiver>
、あなたは、このよう
public class AppStateReceiver extends BroadcastReceiver {
public AppStateReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
String packageName = intent.getData().getEncodedSchemeSpecificPart();
// Check if the application is install or uninstall and display the message accordingly
if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
} else if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
intent.setAction(intent.getAction());
Intent uninstallIntent = new Intent();
uninstallIntent.setAction("Uninstall");
uninstallIntent.putExtra("packageName", packageName);
LocalBroadcastManager.getInstance(context).sendBroadcast(uninstallIntent);
} else if (intent.getAction().equals("android.intent.action.PACKAGE_REPLACED")) {
// Application Replaced
// toastMessage = "PACKAGE_REPLACED: " + intent.getData().toString() + getApplicationName(context, intent.getData().toString(), PackageManager.GET_UNINSTALLED_PACKAGES);
} else if (intent.getAction().equals("android.intent.action.QUERY_PACKAGE_RESTART")) {
}
}
}
を放送受信機を追加できることを追加した場合は、以下のようにそのイベントのリスナーを追加する必要があります
あなたはあなたがあなたの活動や断片やサービスを聞いて、それに基づいて処理することができます地元の放送を送信するだけで、受信者でコールバックを取得する。あなたのフラグメントで
ローカル放送リスナー、
BroadcastReceiver UninstallReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateItems();
}
};
レジスタおよび登録解除放送
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(UninstallReceiver);
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(UninstallReceiver, new IntentFilter("Uninstall"));
は、このコードは、許可を必要としていますか? –
このレシーバの許可は必要ありません。 –
ブロードキャストを登録する必要がありますか?活動の発生または? –