使用場景:
需要在多個activity或者service之間共享數據
1、自定義Application
- public class DemoApplication extends Application {
- private HashMap<String, Object> map = new HashMap<String, Object>();
- public void put(String key,Object object){
- map.put(key, object);
- }
- public Object get(String key){
- return map.get(key);
- }
- }
2、修改AndroidManifest.xml文件:
- <application <strong><em>android:name="DemoApplication"</em></strong> android:icon="@drawable/app" android:label="@string/app_name">
注意黑色粗體字標識的內容,指定程序使用我們自己定義的Application。
3、使用:
在其中一個activity中將數據保存到application中定義的map中
- DemoApplication app = (DemoApplication)getApplication();
- app.put("key", "this is a test!");
然後在另一個activity中去獲取數據:
- DemoApplication app = (DemoApplication)getApplication();
- String value =(String)app.get("key");
- Toast.makeText(this, value, Toast.LENGTH_LONG).show();
注意,這裏沒有考慮併發問題,如果需要,可以在自定義的application中添加相關的同步代碼來實現。