woa,找到一個和我有類似需求的問題,其下給出了不錯的解決方案,也正是我之前想到的,這種方法貌似很方便。
The more general problem you are encountering is how to save stateacross several Activities and all parts of your application. A staticvariable (for instance, a singleton) is a common Java way of achievingthis. I have found however, that a more elegant way in Android is toassociate your state with the Application context. --如想在整個應(yīng)用中使用,在java中一般是使用靜態(tài)變量,而在android中有個更優(yōu)雅的方式是使用Application context。 As you know, each Activity is also a Context, which is informationabout its execution environment in the broadest sense. Your applicationalso has a context, and Android guarantees that it will exist as asingle instance across your application. --每個Activity 都是Context,其包含了其運行時的一些狀態(tài),android保證了其是single instance的。 The way to do this is to create your own subclass of android.app.Application,and then specify that class in the application tag in your manifest.Now Android will automatically create an instance of that class andmake it available for your entire application. You can access it fromany context using the Context.getApplicationContext() method (Activityalso provides a method getApplication() which has the exact sameeffect): --方法是創(chuàng)建一個屬于你自己的android.app.Application的子類,然后在manifest中申明一下這個類,這是android就為此建立一個全局可用的實例,你可以在其他任何地方使用Context.getApplicationContext()方法獲取這個實例,進(jìn)而獲取其中的狀態(tài)(變量)。 給個例子:
This has essentially the same effect as using a static variable orsingleton, but integrates quite well into the existing Androidframework. Note that this will not work across processes (should yourapp be one of the rare ones that has multiple processes). --這個效果就是使用靜態(tài)變量是一樣的,但是其更符合android的架構(gòu)體系。 |
|