是否可以制作活动单身人士?
我发现很多资源只能告诉我使用android:launchMode="singleInstance"
或singleTask
,但我只能将构造函数调用一次。
理想情况下,我希望能够指定自定义构造函数/构建器方法,例如getInstance()
答案 0 :(得分:2)
您可以将参考文献存储在Application
而不是Activity
中。应用程序类事实上是一个单例。您只需要定义访问方法。
public class BaseApplication extends Application {
private static BaseApplication sInstance = null;
public synchronized static BaseApplication getInstance() {
return sInstance;
}
public synchronized static void setInstance(BaseApplication app) {
sInstance = app;
}
public BaseApplication() {
}
@Override
public void onCreate() {
super.onCreate();
setInstance(this);
}
现在您可以通过拨打BaseApplication.getInstance()
来访问它。作为奖励,Application
扩展Context
,所以现在您可以随时随地获得应用程序上下文引用(除了扩充布局外,几乎可以安全地使用它)。
不要忘记将此类定义为清单中的基本应用程序类:
<application
android:name="com.yourapp.BaseApplication">
答案 1 :(得分:1)
通常他们按如下方式行事:
1)定义Activity
状态
2)将状态保存在onSaveInstanceState
3)恢复onCreate
或onRestoreInstanceState