mon*_*nja 24 android broadcastreceiver android-activity
当我有一个broadcastReceiver说android.intent.action.MEDIA_BUTTON并且我想在不创建新活动的情况下更新当前活动的UI时,这个有什么好的做法吗?
我所知道的(可能不正确)
1)我可以将BroadcastReceiver放在与活动相同的类中,并在某些活动后调用updateUI函数
2)创建一个ContentObserver?
3)与活动创建的服务进行通信,使用aidl.(如果从活动中注册,我不知道如何获得当前服务)
4)在与活动相同的类上的broadcastReceiver上创建自定义过滤器,并使用context.sendBroadcast(自定义过滤器的消息)和自定义过滤器调用updateUI(与一个但更通用的相同?)
最后一个流程是来自BroadcastReceiver并最终更新UI而不更新活动(除非活动已经死了?)
请提供有关如何解决此类问题的链接/源代码.非常感谢提前:)
jwr*_*lub 36
提供此功能的最简单方法是将广播接收器放入Activity中,并使用registerReceiver和unregisterreceiver绑定/取消绑定它:
public class MyActivity extends Activity {
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
MyActivity.this.receivedBroadcast(intent);
}
};
@Override
public void onResume() {
super.onResume();
IntentFilter iff = new IntentFilter();
iff.addAction("android.intent.action.MEDIA_BUTTON");
// Put whatever message you want to receive as the action
this.registerReceiver(this.mBroadcastReceiver,iff);
}
@Override
public void onPause() {
super.onPause();
this.unregisterReceiver(this.mBroadcastReceiver);
}
private void receivedBroadcast(Intent i) {
// Put your receive handling code here
}
}
Run Code Online (Sandbox Code Playgroud)
根据您希望收到的意图,您可能需要为AndroidManifest.xml文件添加适当的权限.
| 归档时间: |
|
| 查看次数: |
18151 次 |
| 最近记录: |