使用数据结构对象在Android中存储数据
问题描述:
我是Android的新手。我的问题不是关于如何做某件事,而是关于我想到的想法是否被优化。使用数据结构对象在Android中存储数据
我创建一个聊天应用。我面临的最大问题是存储非永久性数据,无论何时关闭活动,所有数据都丢失。最大的问题是,当用户从聊天屏幕(聊天活动)移动到人民列表(人民活动)时,所有数据再次丢失,并且如果用户重新开始聊天,他不能看到历史。
作为一种变通方法,我创建了几个数据类和服务。只要服务器从活动或服务器接收到更新,服务就会将数据存储在类中。之后,在每一项新活动中,我都会将这个对象从一个活动传递给另一个活动,并将其传递给另一个活动。
我想在此提出了一些建议,这是一个很好的方式去解决?感谢您宝贵的时间。
答
如果我正确理解,你需要一种方法来存储的变量数据或一个数据结构或任何内容,不要失去这个数据时,整个severals活动你的应用程序的变化,对不对?您需要在多个活动中保存状态。
解决方案一:在Java中,对于这个问题的一个解决方案是使用“静态”变量。你可以做,但使用Android,我们可以使用更优雅的解决方案。
第二和建议的解决方案:通过应用程序上下文(容易)
您应该创建自己的android.app.Application的子类相关联的状态。它将像单身人士一样工作。应用
一个子类继承应用程序的性能,你可以,无论你想使用命令“Context.getApplicationContext()”访问此类。通常你会使用这个类去完成需要全局访问的东西。例如:
class YourName_App extends Application {
private ArrayList<String> chatConversation;
public String getChatConversation(){
return this.chatConversation;
}
public void setChatConversation(ArrayList<String> chat){
this.chatConversation = chat;
}
}
现在你的聊天活动:
class Chat extends Activity {
ArrayList<String> conversation;
@Override
public void onCreate(Bundle b)
{
...
YourName_App appState = ((YourName_App) getApplicationContext());
conversation = appState.getChatConversation();
...
}
}
成了!这是做到这一点的最佳方式。
对不起,我英文很差。
不要忘记在'AndroidManifest.xml'中声明你的应用程序子类。即。 ' ' –
howettl
2012-05-07 20:09:22