【发布时间】:2017-02-18 13:06:47
【问题描述】:
我想动态设置一个 BroadcastReceiver 以仅在我的应用程序在前台运行时检查我是否在线。在我的主类中,我创建了一个 Intent Filter、一个嵌套的 BroadcastReceiver 类,最后分别在 onResume 和 onPause 方法中注册/取消注册接收器。
我的问题是,是否有一个意图 ACTION 可以添加到我的意图过滤器中以检查在线连接?
如果没有,我如何创建此动态广播接收器以仅在我的应用运行时执行?
这是我的班级的样子......
public class MainActivity extends AppCompatActivity {
private IntentFilter onlineIntentFilter;
private CheckOnlineReceiver checkOnlineReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onlineIntentFilter = new IntentFilter();
checkOnlineReceiver = new CheckOnlineReceiver();
//*****WHAT INTENT ACTION CAN I PASS TO CHECK NETWORK CONNECTIVITY******
onlineIntentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(checkOnlineReceiver, onlineIntentFilter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(checkOnlineReceiver);
}
private class CheckOnlineReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Toast.makeText(getApplicationContext(),"IN METHOD, ACTION = " + action, Toast.LENGTH_LONG).show();
}
}}
【问题讨论】:
标签: android android-intent intentfilter