我知道通過使用putExtra和getExtra函數調用新活動並將對象值從一個活動傳遞到另一個活動的東西。但我想傳遞值而不需要調用並開始新的活動。可能嗎 ? 如果是,那麼讓我知道我該怎麼做?是否可以在不調用新活動的情況下獲取對象值?
回答
您也可以使用應用程序類聲明的全局變量
class Globalclass extends Application {
private String myState;
public String getState(){
return myState;
}
public void setState(String s){
myState = s;
}
}
class TempActivity extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
更新:
簽出這個很好的教程關於如何做到這一點。
爲此,您可以使用static variable
或SharedPreferences
或者如果您的數據量很大,那麼您可以使用SQlite
。
我不想使用SQLite,因爲我已經有了它。那麼還有其他替代品嗎? –
如果你不需要這個值,當應用程序再次啓動,然後嘗試使用靜態變量.. –
您可能想要使用處理程序的handleMessage()並在消息中傳遞該對象。
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
}
};
然後可以調用handler.handleMessage(MSG),你可以將任意對象msg.onj
請給我一些例子或代碼,我怎麼能做到這一點。 。 。 –
我編輯了我的答案,例如...希望這可以幫助 – CommonMan
你可以把數據庫的幫助,像SQLite的,或者你可以去恆類的概念,你可以做一個公共靜態變量和數據存儲在其他activity.Hope這會一個活動和訪問幫你。
是有很多方法的值傳遞給一個活動:
- 您可以使用
Intent
與FLAG_ACTIVITY_REORDER_TO_FRONT
。在這種情況下,將調用onNewIntent()
方法已啓動的活動。 - 您可以使用靜態字段或靜態方法將新數據傳遞給您的活動。但這並不是一個好方法,因爲即使前臺程序和所有靜態數據都丟失,應用程序有時也會被終止。
- 您可以使用廣播消息將新數據發送到活動。在這種情況下,活動必須註冊
BroadcastReceiver
。
我認爲這不是很難彌補更多的方式來傳遞參數。
- 1. 是否可以在不啓動新活動的情況下調用putExtras()和getExtra()?
- 2. Redis:是否可以在不使用集合的情況下獲取值?
- 3. Java - 是否可以在不投射的情況下讀取序列化對象?
- 4. 是否可以在不使用href的情況下添加活動類?
- 5. 是否可以在不使用CSS3的情況下旋轉HTML對象?
- 6. 在不下載對象的情況下獲取引用
- 7. 如何在不調用新的「窗口」的情況下調用新的活動
- 8. 是否可以在不重新啓動的情況下應用vim配置?
- 9. 是否可以在不重寫代碼的情況下重新調整Qt GUI?
- 10. 在不重新啓動活動的情況下恢復活動
- 11. 是否可以在不導入android ScrollView類的情況下創建scrollview對象?
- 12. OpenGL - 我是否可以在不照明的情況下調整對象的Alpha值
- 13. 是否可以在不使用debugfs的情況下使用ftrace?
- 14. 是否可以在不使用Rails的情況下使用FactoryGirl?
- 15. 是否可以在不禁用JavaScript的情況下禁用AJAX?
- 16. 是否可以在不改變上下文的情況下調用function.apply?
- 17. 如何在不創建對象的情況下收聽活動
- 18. 在不使用請求對象的情況下獲取URL
- 19. 我們是否可以在沒有用戶標識的情況下獲取所有活動
- 20. 是否可以在不拖放的情況下使用Linq-SQL?
- 21. 是否可以在不使用isNaN的情況下檢測NaN?
- 22. 是否可以在不渲染HTML的情況下使用React?
- 23. 是否有可能在不破壞它的情況下重用一個活動?
- 24. 在這種情況下如何獲取最新的對象?
- 25. 是否可以在不觸及其他實體對象的情況下自動更新所選屬性
- 26. 是否可以在不下載整個對象的情況下更改S3對象上的標題?
- 27. 是否可以在不使用JavaScript API的情況下調用getPanoramaByLocation?
- 28. 是否可以在不使用回調的情況下使用Google地圖?
- 29. 是否可以在不調用soot.Main.main(...)的情況下使用Soot分析?
- 30. 是否可以在不影響第一個對象的情況下將@Entity對象轉換爲普通對象?
感謝來自印度的Suri。但是存儲數據呢?您是否需要使用存儲其他活動數據的方法更新代碼? –
那麼,你可以使用setState(「state set」)以相同的方式存儲數據。 –
這不是存儲數據的好方法。我曾經使用這種方法,但似乎很容易出錯。例如,如果以這種方式保存一些數據,然後運行需要大量內存的另一個應用程序,則應用程序將被終止,並且此全局狀態將丟失。 – Michael