Android 系列 2.9设置首次运行首选项

263 篇文章 2 订阅
164 篇文章 0 订阅
2.9设置首次运行首选项


问题
您有一个匿名收集应用使用情况数据的应用,因此您有义务让他们第一次运行您的应用时注意到这一点。

使用共享首选项作为持久存储来存储值,该值仅更新一次。每次应用程序启动时,它将在首选项中检查此值。如果值已设置(可用),则不是应用程序的第一次运行;否则为第一次运行。
讨论
您可以使用Android框架的Application类来管理应用程序的生命周期。我们将使用共享首选项作为持久存储来存储首次运行的值。
如果这是第一次运行,我们将在首选项中存储一个布尔标志。当应用程序首次安装和使用时,没有可用的首选项。
他们将为我们创造。在这种情况下,该标志将返回值true。获得true标志后,我们可以更新此标志的值为false,因为我们不再需要它为true。参见实施例2-11。

实施例2-11。首选偏好

public class MyApp extends Application {
SharedPreferences mPrefs;
@Override
public void onCreate() {
super.onCreate();
Context mContext = this.getApplicationContext();
// 0 = mode private. only this app can read these preferences
mPrefs = mContext.getSharedPreferences("myAppPrefs", 0);
// Your app initialization code goes here
}
public boolean getFirstRun() {
return mPrefs.getBoolean("firstRun", true);
}
public void setRunned() {
SharedPreferences.Editor edit = mPrefs.edit();
edit.putBoolean("firstRun", false);
edit.commit();
}
}

来自首选项的此标志将在启动器活动中进行测试,如示例2-12所示。
实施例2-12。 检查这是否是此应用程序的第一次运行

if(((MyApp) getApplication()).getFirstRun()){
//This is the first run
((MyApp) getApplication()).setRunned();
// your code for the first run goes here
}
else {
// this is not the first run on this device
}


即使您发布了应用程序的更新,并且用户安装更新,这些首选项也不会被修改; 因此,代码将仅在安装后的第一次运行时工作。 对应用程序的后续更新不会将代码带入图片,除非用户已手动卸载并重新安装应用程序。
您可以使用类似的技术来分发Android应用的共享版本(即限制应用的试用次数)。 在这种情况下,您将在首选项中使用整数计数值来指示试验次数。 每个试验将更新偏好。 达到所需值后,您将阻止应用程序的使用,直到用户支付使用费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值