Android:通过活动或服务传递复杂的数据结构

时间:2010-09-09 15:53:05

标签: android

您好我想将复杂的数据结构从我的Service类传递给Activity类。

我创建了Serializable类:

        class SaveMe implements Serializable {

        private static final long serialVersionUID = 1L;

        static final int test = 1234;

        private int user;

        private String name;

        private double score;


        public SaveMe() {}
    }

我把它放在Bundle

Bundle bundle = new Bundle();
bundle.putSerializable("serializable", new SaveMe());

我该如何将此信息发送到Activity类?

我尝试使用此代码:

Intent mapIntent = new Intent(INTENT_MAP);     
mapIntent.putExtras(bundle);

而不是我想使用以下方式发送给BroadcastReciver:

 sendBroadcast(mapIntent);

但是我收到了力误!

我应该使用BroadcastReceiver将此数据结构传递给我的活动吗?

如何发送到其他活动?

由于

2 个答案:

答案 0 :(得分:1)

您可以通过扩展Application类并包含getter来存储全局所需的任何数据,以返回存储在那里的现有SaveMe。您可以使用

从活动中访问此内容
private MyApplication application;

@Override
   public void onCreate(final Bundle savedInstanceState) {
                ........
   this.application = (MyApplication) this.getApplication();
                ......
}

// elsewhere in your code
SaveMe mySaveMe = application.getSaveMe();

本文非常清楚地解释了如何执行此操作:http://www.screaming-penguin.com/node/7746您可以忽略有关AsyncTask的内容(尽管我确信您会在某些时候发现需要)并且只关注有关扩展应用程序类。

答案 1 :(得分:0)

一种选择是基本上窃取R类的想法。你有一个可以从任何地方参考的最终课程。我不确定这是不是一个好主意。没有多少人尝试这个