1

それはおそらく非常に単純な質問ですが、私は一日からこれらに夢中になっているようです. だからここに質問があります:

AndroidManifestファイルから登録したActivityのBroadcastReceiverを登録解除するには? ここにコードがあります::

 <receiver  android:name=".PhoneCallReceiver">
        <intent-filter  >
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>

機能に精通している

public void unregisterReceiver (BroadcastReceiver レシーバー)

ただし、そのアクティビティから登録されていない場合は例外をスローします

IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.PHONE_STATE");
registerReceiver(mybroadcast, filter);
4

2 に答える 2

4

receiverで定義されたを無効にするmanifestには、次を使用します。

PackageManager pm = context.getPackageManager();
ComponentName component = new ComponentName(context, PhoneCallReceiver.class)
pm.setComponentEnabledSetting(component , PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);
于 2013-02-11T06:17:49.723 に答える
0

これを試して:

public void onResume()
  {
    IntentFilter filter = new IntentFilter();
    filter.addAction("android.intent.action.PHONE_STATE");
    registerReceiver(mybroadcast, filter);  

  }

  public void onPause()
  {
    unregisterReceiver(mybroadcast);
  }
于 2013-02-11T06:28:35.997 に答える