用户登录后从服务器获取的用户ID、昵称、金币等信息怎么存放,因为可能多个Activity都会用到,不可能一直用Bundle传吧??是存放在SharedPreferences的吗??然后下次登录的时候再更新??
------解决思路----------------------
1.登陆成功后所要做的事情很多,保存状态,获取登陆success后返回的数据,该解析的解析,该保存的保存
2.登陆成功后 先将id(或者是其他唯一标示)保存sharedpreferrence,便于下次进入应用时判断是否已经登陆
3.登陆成功后也要保存一份在内存中,便于程序中需要的时候取出来判断
方法时创建一个类(如:MyApplication),然后再。。。。。上代码吧
<application
android:name="MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
。。。。。。。。。。。。。
</activity>
</application>
注意红色字体,这里将这个类作为全局初始化,程序运行时就已经初始化了
在类中定义用于保存重要信息的变量,登陆成功后把唯一标示保存进去,整个应用程序都可以取到这个值了
也可直接从sharedpreferrence取出来判断
注:这里最好用一个类将sharedpreferrence封装下,不然每次都要写好多重复的代码
------解决思路----------------------
将登陆信息用实体类保存,然后在Application中设置get方法,获取该实体类
------解决思路----------------------
不一定要用Application,随便一个类写成单例或static的字段都可以
比如:
public class LoginUserInfo {
public static long id;
public static String name;
}再写一个保存ID,name到SharedPreferences和读取SharedPreferences的方法就可以了
------解决思路----------------------
请问怎么在Application设置get方法
将登陆信息用实体类保存,然后在Application中设置get方法,获取该实体类
比如我写了一个Client类
public class Client{
public int id;
publict String name;
//getter,setter...
}
然后在
public class MyApplication extends Application{
public Client client;
public void setClient(Client c){
this.client=c;
}
public Client getCilent(){
return this.client;
}
}
在登录的时候调用set,在其他要用的地方调用get