2010-09-09 66 views
0

嗨我想將我的Service類中的複雜數據結構傳遞給Activity類。Android:通過活動或服務傳遞複雜的數據結構

創建類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 = new Bundle(); 
bundle.putSerializable("serializable", new SaveMe()); 

我怎樣才能將這個信息發送到活動類?

我嘗試使用此代碼:

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

而且比我想用傳送給BroadcastReciver:

sendBroadcast(mapIntent); 

但我收到力誤差!

我應該使用BroadcastReceiver將此數據結構傳遞給我的活動嗎?

如何發送到其他活動?

感謝

+1

請重新考慮你的方法。 http://commonsware.com/blog/2010/09/08/decoupled-activities.html – CommonsWare 2010-09-09 16:09:23

+0

每當您報告「強制錯誤」時,您需要提供錯誤的堆棧跟蹤或logcat日誌。 – 2010-09-09 17:07:36

回答

1

您可以將通過擴展應用類別及包括一個getter返回存儲在那裏的現有SaveMe全球所需的任何數據。 http://www.screaming-penguin.com/node/7746可以忽略有關的AsyncTask的東西(雖然我敢肯定,你會發現在某些時候需要的是:你可以從你的活動與

private MyApplication application; 

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

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

本文介紹的很清楚如何做到這一點訪問此),只關注擴展應用程序類的部分。

+0

鏈接似乎被打破。 – 2017-06-07 09:53:48

0

一種選擇是基本上竊取了R類的想法。你有最後一堂課,你可以在任何地方參考。我不確定這是不是一個好主意。沒有多少人試過這個

相關問題