我想在我的应用的第三次发布时展示一项特殊活动。我做了一些研究,发现了Check if application is on its first run。但我仍然不知道如何检测它是否是第三次,并且在该问题的回答中描述了如何知道应用程序是否已停止然后恢复但是我需要一个能够显示我的解决方案的解决方案用户将在第3次打开它时的特殊活动!!!
有人可以帮我吗?
谢谢!
答案 0 :(得分:1)
在您的启动活动中,将此代码放在onCreate方法中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Perhaps set content view here
SaharedPreferences prefs = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE);
int launch_count = prefs.getInt("launch_count", 0);
if(launch_count>=3){
// third time launch
Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
} else {
prefs.edit()
.putInt("launch_count", launch_count+1)
.apply();
}
}
但是这个解决方案不会检测重新创建活动,这将是增加launch_count计数器的理由。您可以通过创建" StartActivity"来解决此问题,它会增加计数器并启动主要或特定活动。
答案 1 :(得分:0)
在onCreate方法的Application类中,您可以添加从Shared Preferences读取整数值的代码。如果没有值,则值为0.然后只需添加1并保存。然后在任何活动中,您都可以读取此值。如果价值是3,你就可以去了。
答案 2 :(得分:0)
更好地将整数值存储在您的共享引用中。每次都要检查范围是否已经到来。
示例:
首次初始化int i = 0并将值存储为0
下一步,这意味着下次从共享首选项中检索值并将其存储在其中。然后检查值。
if(i==range)
//todo
else
//todo
答案 3 :(得分:0)
将计数保留在mysql数据库或共享首选项中,并在启动屏幕或您的第一个活动中检查并更新应用程序的每次启动,获取计数和 如果(计数> = 3){ //在这里做你需要的操作 }其他{ //应用程序的前3个打开 }