您好我想将复杂的数据结构从我的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将此数据结构传递给我的活动吗?
如何发送到其他活动?
由于
答案 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类的想法。你有一个可以从任何地方参考的最终课程。我不确定这是不是一个好主意。没有多少人尝试这个