我正在开发一个项目,我希望在我的应用程序中传输数据。这些数据存在于数据模型类中,因此使用意图发送参数会使代码变得很大并且难以跟上,因为类的结构很复杂。
所以基本上我决定在扩展Application的单例类上创建这些类的静态实例,这有助于我轻松地设置和从这些对象获取数据。它有效。
问题:
我有点新,所以我不知道这是不是一个好方法。我读了一些关于它的东西here,但是根据建议将它们存储在本地数据库中并不适合我的情况。除了当我决定杀死你的应用程序时,还有任何危险吗?我的方法是单身类吗?
非常欢迎所有建议和建议。
提前致谢。
答案 0 :(得分:1)
强制停止或终止应用后,您将丢失数据。
只是为了演示,您可以通过执行以下步骤来验证这一点。
public static int count = 0;
Log.d("COUNT", String.valueOf(count));
count++;
重新启动应用并查看COUNT的日志它将为0,而不是1
package com.test.app;
import android.app.Application;
import android.util.Log;
public class MyApplication extends Application {
public static int count = 0;
@Override
public void onCreate() {
Log.d("COUNT", String.valueOf(count));
count++;
}
}
最好将数据保存在某个地方。 Android杀死进程,它只取决于RAM状态和文档中描述的其他因素。在现实世界中,一些设备被应用程序“过载”,因此终止后台进程是正常情况。是的,如果用户然后决定将应用程序放到前台 - 操作系统将恢复其堆栈(包括应用程序实例),但是除非您持久保存,否则不会有您依赖的静态数据。
请阅读this链接上的Limitations & Warnings
部分。
http://www.developerphil.com/dont-store-data-in-the-application-object/