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

来源:互联网 发布:wpsexcel数据分析工具 编辑:程序博客网 时间:2024/06/06 18:16
2.9设置首次运行首选项


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

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

实施例2-11。首选偏好

public class MyApp extends Application {SharedPreferences mPrefs;@Overridepublic void onCreate() {super.onCreate();Context mContext = this.getApplicationContext();// 0 = mode private. only this app can read these preferencesmPrefs = 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应用的共享版本(即限制应用的试用次数)。 在这种情况下,您将在首选项中使用整数计数值来指示试验次数。 每个试验将更新偏好。 达到所需值后,您将阻止应用程序的使用,直到用户支付使用费。

0 0