大家好我怎么做才能从扩展BroadcastReceiver的类中刷新一个Activity?具有意图的经典StartActivity不起作用。 :/
答案 0 :(得分:0)
大家好我怎么做才能从扩展的类中刷新一个Activity 广播接收器?
您可以通过在Activity中添加BroadcastReceiver并在扩展BroadcastReceiver的类中向其发送广播来实现此目的。
在您的活动中注册BroadcastReceiver:
IntentFilter filter = new IntentFilter("yourpackagename.updateActivity");
registerReceiver(new BroadcastReceiver(){
public void onReceive(Context context, Intent intent) {
// Update your Activity here.
}
}, filter);
向扩展BroadcastReceiver的类中的该活动发送广播:
public void onReceive(Context context, Intent intent) {
if(meet the condition){
Intent i = new Intent("yourpackagename.updateActivity");
context.sendBroadcast(i);
}
}
PS。此解决方案可以保证每个Activity在有多个Activity实例时获得更新通知,而静态字段解决方案无法保证。
答案 1 :(得分:-1)
活动:
class TestActivity extends Activity{
private static TestActivity Obj;
public TestActivity(){
Obj=this;
}
public static getInstance(){
return Obj;
}
public void refresh(){
//refresh Logic here
}
}
在接收者中:
public TestReceiver extends BroadcastReceiver{
........ OnReceive(){
if(TestActivity.getInstance()!=null){
TestActivity.getInstance().refresh();
}
}
}
答案 2 :(得分:-3)
在BroadcastReceiver中添加此行
YourActivity.Update();
通过这个方法在您的活动类中创建一个静态Update()方法,并在Update()方法中执行您想要的所有操作。