我试图找到答案如何LocalBroadcastManager
在扩展的课堂上使用,BaseAdapter
但在花费数小时研究如何做到这一点后,我没有找到正确的答案。我需要从Fragment
适配器内部调用方法,但我不知道该怎么做。有人可以解释我该怎么做吗?感谢您的回复和帮助。
问问题
6665 次
1 回答
6
我只能回答有关 LocalBroadcastManager 的问题。
- 将支持库添加到您的 SDK,然后添加到您的 Android 项目。
- 显然,在你的java类等中导入支持库。
声明你的 LocalBroadcastManager 并实例化它。此外,您可以将其声明为静态并在整个(整个)应用程序中使用它。所以你不必为每个活动都实例化一个新的,等等。
public static LocalBroadcastManager mBroadcaster; mBroadcaster = LocalBroadcastManager.getInstance(yourAppContextHere);
在每个活动、服务等中,根据每个活动的生命周期注册和取消注册一个接收器。每个接收器可以有不同的过滤器。例如在 onResume (或 onCreate) 和 onPause (或 onDestroy)::
IntentFilter mFilter = new IntentFilter(MY_ACTION_1); mFilter.addAction(MY_ACTION_2); mBroadcaster.registerReceiver(localBluetoothReceiver, mFilter); mBroadcaster.unregisterReceiver(localBluetoothReceiver);
最后,发送广播并与接收者一起接收:
Intent sendCmdIntent = new Intent("your.package.name.your.action.name"); sendCmdIntent.putExtra(key, value); mBroadcaster.sendBroadcast(sendCmdIntent); private BroadcastReceiver localBluetoothReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Do whatever depending on the action and on the extra stuff you put in the intent.
以上都是凭记忆引用的,欢迎修改!
于 2013-02-14T20:54:56.850 回答