android 随机布尔值,android – SharedPreferences.getBoolean每次都返回true
我创建了一个类来处理重要的数据更改,例如App Purchase Status和其他东西.为了这个目标,我创建了一个用于设置和读取值的类.但问题是每当我调用appIsPurchased()方法时,结果都是正确的,因为自应用程序安装及其首次启动以来它没有被更改.这是我的代码:/*** Created by neemasa on 5/29/14.* This class handles more cr
我创建了一个类来处理重要的数据更改,例如App Purchase Status和其他东西.
为了这个目标,我创建了一个用于设置和读取值的类.但问题是每当我调用appIsPurchased()方法时,结果都是正确的,因为自应用程序安装及其首次启动以来它没有被更改.
这是我的代码:
/**
* Created by neemasa on 5/29/14.
* This class handles more crucial data values within app.
*/
public class AppCore {
private SharedPreferences settings;
private String keyPurchase = "app_purchased";
private Context context;
public AppCore(Context context){
this.context = context;
settings = PreferenceManager.getDefaultSharedPreferences(context);
}
public void setAppInPurchasedMode(String status){
if (status.equals("successful")){
settings.edit().putBoolean(keyPurchase, true).commit();
}else if (status.equals("failed")){
settings.edit().putBoolean(keyPurchase, false).commit();
}
}
public boolean appIsPurchased(){
boolean purchased = false;
if (settings.getBoolean(keyPurchase,true)){
purchased = true;
}
return purchased;
}
}
问题1:我的代码有问题吗?如果有,那么为什么appIsPurchased()总是返回true?
问题2:默认情况下,共享首选项中的所有值都是真的吗?
同时,当我在我的代码中使用这个类时,toast“购买了!”即使应用程序第一次运行,也会运行.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AppCore appCore = new AppCore(getApplicationContext());
if (appCore.appIsPurchased()){
Toast.makeText(getApplicationContext(),"Purchased!",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getApplicationContext(),"Not Purchased!",Toast.LENGTH_SHORT).show();
}
}
更多推荐
所有评论(0)