3

2 つの類似したブロードキャスト イベントACTION_PACKAGE_FULLY_REMOVEDとが見つかりましACTION_PACKAGE_REMOVEDた。しかし、ユースケースの違いは何ですか? パッケージがアンインストールされたときにブロードキャスト イベントを受信したい場合、それらの実際の違いは何ですか?

ご注意ください: 私はアンドロイド開発と日々の学習に慣れていません。

4

2 に答える 2

3

ハイライトコードを参照してください。その両方の違いです...

ACTION_PACKAGE_REMOVED -: ブロードキャスト アクション: 既存のアプリケーション パッケージがデバイスから削除されました。データにはパッケージの名前が含まれています。インストールされているパッケージは、このインテントを受け取りません。

ACTION_PACKAGE_FULLY_REMOVED - : ブロードキャスト アクション: 既存のアプリケーション パッケージがデバイスから完全に削除されました。データにはパッケージの名前が含まれています。これは ACTION_PACKAGE_REMOVED に似ていますが、そのブロードキャストの EXTRA_DATA_REMOVED が true で EXTRA_REPLACING が false の場合にのみ設定されます。

于 2013-07-16T10:50:02.350 に答える
2

android.googlesource.com/platform/packages/services/Telecomm の状態:

このクラスは、同じパッケージの再インストール時に {@code PACKAGE_REMOVED} がトリガーされるため、{@code PACKAGE_REMOVED} ではなく {@code PACKAGE_FULLY_REMOVED} インテントをリッスンします。{@code PACKAGE_FULLY_REMOVED} は、アプリケーションが完全にアンインストールされた場合にのみトリガーされます。 .

したがって、完全にアンインストールするには、PACKAGE_FULLY_REMOVED のみが必要です。PACKAGE_REMOVED は、再インストールさえもトリガーします。

ただし、テストに基づいて、何らかの理由で PACKAGE_FULLY_REMOVED が毎回トリガーされるわけではありません。インストールされていないパッケージに余分なデータがないためだと思います。これを証明するには、さらにテストが必要です。

于 2016-07-26T12:36:22.217 に答える