从广播接收器发送数据到 MainActivity
Send data from Broadcast receiver to MainActivity
我需要在屏幕上显示连接状态。这似乎是一项简单的任务...
下面是我的接收者代码:
public class PowerConnectionReceiver extends BroadcastReceiver {
public PowerConnectionReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
String state;
if (intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
state = "Charging";
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
} else {
intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED);
state = "Not charging";
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
}
}
}
如何在屏幕 textView 上显示我的 STATE 变量。有人可以帮忙吗?谢谢!
您需要注册一个Callback
。在 PowerConnectionReceiver
中创建一个 Interface
,例如:
public Interface NetworkStatusCallback {
public void onStateChange(String state);
}
现在在您的 MainActivity
中实施此 Callback
,例如:
public class MainActivity extends AppCompatActivity implements PowerConnectionReceiver.NetworkStatusCallback {...}
在 PowerConnectionReceiver
中创建此 Callback
的 reference
并声明如下:
private NetworkStatusCallback mCallback;
mCallBack = (NetworkStatusCallback)context;
现在 onReceive(Context context, Intent intent)
执行此操作:
@Override
public void onReceive(Context context, Intent intent) {
String state;
if (intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
state = "Charging";
mCallback.onStateChange(state);
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
} else {
intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED);
state = "Not charging";
mCallback.onStateChange(state);
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
}
}
您将在 MainActivity
收到状态
我需要在屏幕上显示连接状态。这似乎是一项简单的任务...
下面是我的接收者代码:
public class PowerConnectionReceiver extends BroadcastReceiver {
public PowerConnectionReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
String state;
if (intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
state = "Charging";
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
} else {
intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED);
state = "Not charging";
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
}
}
}
如何在屏幕 textView 上显示我的 STATE 变量。有人可以帮忙吗?谢谢!
您需要注册一个Callback
。在 PowerConnectionReceiver
中创建一个 Interface
,例如:
public Interface NetworkStatusCallback {
public void onStateChange(String state);
}
现在在您的 MainActivity
中实施此 Callback
,例如:
public class MainActivity extends AppCompatActivity implements PowerConnectionReceiver.NetworkStatusCallback {...}
在 PowerConnectionReceiver
中创建此 Callback
的 reference
并声明如下:
private NetworkStatusCallback mCallback;
mCallBack = (NetworkStatusCallback)context;
现在 onReceive(Context context, Intent intent)
执行此操作:
@Override
public void onReceive(Context context, Intent intent) {
String state;
if (intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
state = "Charging";
mCallback.onStateChange(state);
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
} else {
intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED);
state = "Not charging";
mCallback.onStateChange(state);
Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
}
}
您将在 MainActivity