Как пользоваться трансляцией и приемниками - PullRequest
0 голосов
/ 04 июня 2011

Как я могу использовать свой приемник Broadcast?Например, когда мое приложение запускается, как заставить приемник постоянно запускать свой код?

Код моего приемника:

  private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

        ConnectivityManager mConnectivity;
        mConnectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo info = mConnectivity.getActiveNetworkInfo();
        if (info == null || !mConnectivity.getBackgroundDataSetting()) {

            wifi.setChecked(false);

            return;
        } else {
            int netType = info.getType();
            //int netSubtype = info.getSubtype();
            if (netType == ConnectivityManager.TYPE_WIFI) {

                wifi.setChecked(true);

            } else {

                wifi.setChecked(false);

            }
        }

    }
};

Кстати, Wi-Fi - это кнопка переключения.

Пожалуйста, помогите спасибо!

1 Ответ

1 голос
/ 04 июня 2011

Вам необходимо установить фильтр намерений, связанный с вашим получателем, в вашем файле manifest.xml следующим образом:

<receiver android:name="<fully qualified name of your receiver class>" android:label="@string/label">
<intent-filter>
        <action android:name="package name + your action name" />
    </intent-filter>
</receiver>

тогда, в своей деятельности, когда вы хотите позвонить своему получателю, вы просто

sendBroadcast( new Intent( "package name + your action name" ) );

А затем вы должны обновить свое приложение, но в потоке пользовательского интерфейса, чтобы изменить виджет:

 final boolean checked = true;
 runOnUIThread( new Runnable() {
    public void run()
    { 
       wifi.setChecked( checked ):
    }
 });

Но я полагаю, что ваш получатель является внутренним классом внутри активности (единственный способ получить ссылку на виджет). Таким образом, вместо регистрации вашего получателя через xml, вы должны зарегистрировать его через код.

Посмотрите на эту тему .

С уважением, Stéphane

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...