0

ブロードキャスト レシーバーを作成し、アクティビティから呼び出しています。動的にブロードキャストレシーバーが登録されているかどうかを確認して、ブロードキャストレシーバーを登録解除できるようにしたいですか? 前もって感謝します

4

2 に答える 2

1

回答は下記リンクをご確認ください。彼らの短い素敵な答えを見ることができます:

onReceive で Android ブロードキャスト レシーバーを登録解除すると、「Receiver not registered」がスローされる

于 2012-11-27T13:52:11.020 に答える
0

パッケージ マネージャーを使用してブロードキャスト レシーバーを有効または無効にするには、次のコードを使用します。このコードはトグル ボタンのように機能します。

int flag = (enabled ?
                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED :
                        PackageManager.COMPONENT_ENABLED_STATE_DISABLED);

            if(flag == 1)
                flag = 2;
            else
                flag = 1;

            Log.d("After Flag","::"+flag);

            ComponentName component = new ComponentName(StartActivity.this, SMSReceiver.class);

            getPackageManager().setComponentEnabledSetting(component, flag,PackageManager.DONT_KILL_APP);

enable は、ブロードキャスト レシーバーが最後に動作していたかどうかを知るために共有設定として保存したブール値です。

于 2012-11-30T17:20:18.207 に答える