Android 从BroadcastReceiver通知活动活动

Android 从BroadcastReceiver通知活动活动,android,broadcastreceiver,Android,Broadcastreceiver,如果internet不可用,我想显示当前活动的文本视图 我正在获取internet状态,但如何将其通知到当前活动(我的注意力集中在哪个活动中) 在您的活动中: public class YourActivity extends Activity { private TextView mTextView; public static final String NETWORK_DISABLE_ACTION = "yourpackagename.action.network_disba

如果internet不可用,我想显示当前活动的文本视图

我正在获取internet状态,但如何将其通知到当前活动(我的注意力集中在哪个活动中)

在您的活动中:

public class YourActivity extends Activity {
    private TextView mTextView;
    public static final String NETWORK_DISABLE_ACTION = "yourpackagename.action.network_disbale";
    private LocalBroadcastManager mLocalBroadcastManager;
    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(NETWORK_DISABLE_ACTION)) {
                mTextView.setText("No internet connection");
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_xml);
        mTextView = (TextView) findViewById(R.id.your_textView_id);
        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(NETWORK_DISABLE_ACTION);
        mLocalBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mLocalBroadcastManager.unregisterReceiver(mBroadcastReceiver);
    }        
}
在您的网络ChangeReceiver中:

if (wifi.isAvailable() || mobile.isAvailable()) {
        Log.d("TAG", "Netowk Available");
    } else {
        //notify it to current active activity and show a textview as
        //"No internet connection"
        LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(
            YourActivity.NETWORK_DISABLE_ACTION ));
    }
在您的活动中:

public class YourActivity extends Activity {
    private TextView mTextView;
    public static final String NETWORK_DISABLE_ACTION = "yourpackagename.action.network_disbale";
    private LocalBroadcastManager mLocalBroadcastManager;
    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(NETWORK_DISABLE_ACTION)) {
                mTextView.setText("No internet connection");
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_xml);
        mTextView = (TextView) findViewById(R.id.your_textView_id);
        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(NETWORK_DISABLE_ACTION);
        mLocalBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mLocalBroadcastManager.unregisterReceiver(mBroadcastReceiver);
    }        
}
在您的网络ChangeReceiver中:

if (wifi.isAvailable() || mobile.isAvailable()) {
        Log.d("TAG", "Netowk Available");
    } else {
        //notify it to current active activity and show a textview as
        //"No internet connection"
        LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(
            YourActivity.NETWORK_DISABLE_ACTION ));
    }
在您的活动中:

public class YourActivity extends Activity {
    private TextView mTextView;
    public static final String NETWORK_DISABLE_ACTION = "yourpackagename.action.network_disbale";
    private LocalBroadcastManager mLocalBroadcastManager;
    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(NETWORK_DISABLE_ACTION)) {
                mTextView.setText("No internet connection");
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_xml);
        mTextView = (TextView) findViewById(R.id.your_textView_id);
        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(NETWORK_DISABLE_ACTION);
        mLocalBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mLocalBroadcastManager.unregisterReceiver(mBroadcastReceiver);
    }        
}
在您的网络ChangeReceiver中:

if (wifi.isAvailable() || mobile.isAvailable()) {
        Log.d("TAG", "Netowk Available");
    } else {
        //notify it to current active activity and show a textview as
        //"No internet connection"
        LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(
            YourActivity.NETWORK_DISABLE_ACTION ));
    }
在您的活动中:

public class YourActivity extends Activity {
    private TextView mTextView;
    public static final String NETWORK_DISABLE_ACTION = "yourpackagename.action.network_disbale";
    private LocalBroadcastManager mLocalBroadcastManager;
    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(NETWORK_DISABLE_ACTION)) {
                mTextView.setText("No internet connection");
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_xml);
        mTextView = (TextView) findViewById(R.id.your_textView_id);
        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(NETWORK_DISABLE_ACTION);
        mLocalBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mLocalBroadcastManager.unregisterReceiver(mBroadcastReceiver);
    }        
}
在您的网络ChangeReceiver中:

if (wifi.isAvailable() || mobile.isAvailable()) {
        Log.d("TAG", "Netowk Available");
    } else {
        //notify it to current active activity and show a textview as
        //"No internet connection"
        LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(
            YourActivity.NETWORK_DISABLE_ACTION ));
    }

为此,您需要编写一个自定义接收器作为活动的内部类,并从这里发送广播。我也做了同样的事情。我已经在活动上创建了一个静态变量。在BroadcastReceiver中,当net得到时,我将该变量设为false,当net可用时,我将该变量设为true。所以你可以做一些类似的事情。为此,你需要编写一个自定义接收器作为你活动的内部类,并从这里发送广播。我也做了同样的事情。我已经在活动上创建了一个静态变量。在BroadcastReceiver中,当net得到时,我将该变量设为false,当net可用时,我将该变量设为true。所以你可以做一些类似的事情。为此,你需要编写一个自定义接收器作为你活动的内部类,并从这里发送广播。我也做了同样的事情。我已经在活动上创建了一个静态变量。在BroadcastReceiver中,当net得到时,我将该变量设为false,当net可用时,我将该变量设为true。所以你可以做一些类似的事情。为此,你需要编写一个自定义接收器作为你活动的内部类,并从这里发送广播。我也做了同样的事情。我已经在活动上创建了一个静态变量。在BroadcastReceiver中,当net得到时,我将该变量设为false,当net可用时,我将该变量设为true。所以你可以做这样的事情。