0

3 天前我刚刚开始 android 开发,我正在尝试为 Yahoo 开发一个 Messenger。地狱的第一个应用程序,对吧?!:D

我现在面临的问题是我正在尝试实现一个选项卡式 IM 窗口,该窗口应该向人们展示我目前正在与之聊天的人。我为单个聊天窗口设计了一个布局文件和必要的活动类,我正在使用一个TabActivity向用户展示其中的几个。但是问题是我在活动类本身中存储了一些特定于聊天的信息(例如我当前正在聊天的用户的 ID),并且在创建新选项卡时初始化这些值时遇到问题。

最初我使用一个BroadcastReceiver和一个意图来初始化,如下所示:

protected class MyListener extends BroadcastReceiver
    {

        @Override
        public void onReceive(Context context, Intent intent)
        {
            if (intent.getAction().equals(
                    "com.sirm2x.messenger.CHAT_WINDOW_CREATED"))
            {
                 ChatWindowActivity.this.friendId = intent.getExtras()
                 .getString("friendId");
            }
        }
    }

问题是friendId所有活动都设置为为最后一个要创建的选项卡传递的值!

这种情况的解决方案/最佳实践是什么?我是否正确地解决了这个问题?

非常感谢任何帮助!

4

1 回答 1

1

这里的问题是您在每个或您的选项卡中注册了一个广播接收器,并且您的每个接收器都接收广播,并在其中设置了friendId 变量。

我不太确定 BroadcastReceiver 是正确的方法。

于 2011-12-06T13:10:34.170 回答