我希望我的主要活动在启动时显示弹出窗口,此活动是创建的第一个活动,但可以创建此活动的多个实例,并且我只希望第一个活动启动显示这个弹出窗口,所以我想知道如果我可以检查这个。检查活动是否是自启动以来的第一个活动
回答
做的最简单的方法是使用一个静态变量
你如何使用它:
定义静态布尔标志,并为其分配false值,一旦该活动首次创建,使标志真实的,现在你用简单的做你的任务if/else
条件
public static boolean flag=false;
然后在onCreate
if(flag==true)
{
//Activity is not calling for first time now
}
if(flag==false)
{
//first time calling activity
flag=true;
}
这看起来很有前途,我会试试看。谢谢 –
当然,让我知道如果它的工作:) –
感谢它的工作原理 –
存储标志SharedPreferences
表示应用程序是否第一次启动。使用Activity Oncreate方法为:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create and check SharedPreferences if fist time launch
SharedPreferences settings = getSharedPreferences("showpopup", 0);
SharedPreferences.Editor editor = settings.edit();
if(settings.contains("firsttime")){
// means activity not launched first time
}else{
// means activity launched first time
//store value in SharedPreferences as true
editor.putBoolean("firsttime", true);
editor.commit();
//show popup
}
}
我的意思是第一次自应用程序启动以来第一次调用活动,而不是第一次在此设备上调用该活动。据我所知即使完全终止应用程序后,共享首选项仍然存在。 –
我会使用selvins方法。除非你有一个后端应用程序设置和用户注册,也就没有办法,除非你使用SharedPreferences
int activityLaunchCount = 0;
SharedPreferences preferences = getBaseContext().getSharedPreferences("MyPreferences", SharedPreferences.MODE_PRIVATE);
activityLaunchCount = preferences.getInt("ActivityLaunchCount", 0);
if(activityLaunchCount < 1)
{
// ** This is where you would launch you popup **
// ......
// Then you will want to do this:
// Get the SharedPreferences.Editor Object used to make changes to shared preferences
SharedPreferences.Editor editor = preferences.edit();
// Then I would Increment this counter by 1, so if will never popup again.
activityLaunchCount += 1;
// Store the New Value
editor.putInt("ActivityLaunchCount", activityLaunchCount);
// You Must call this to make the changes
editor.commit();
}else{
// If you application is run one time, this will continue to execute each subsequent time.
// TODO: Normal Behavior without showing a popup of some sort before proceeding.
}
然后,当你想关闭应用程序,为您获得此类信息的具体应用实例
Override
的Activity
完成()方法
@Override public void finish()
{
super.finish();
// Get the SharedPreferences.Editor Object used to make changes to shared preferences
SharedPreferences.Editor editor = preferences.edit();
// Store the New Value
editor.putInt("ActivityLaunchCount", 0);
// You Must call this to make the changes
editor.commit();
}
- 1. 检查一个活动是否活动
- 2. 检查android活动是否是第一次启动
- 3. Android,如何检测该活动是否来自其他活动?
- 4. 启动AlertDialog不是来自活动
- 5. Android:是否可以引用第二个活动中的活动?
- 6. 如何检查div的第一个孩子是否活动
- 7. 检查当前活动是否需要活动(同一父母)
- 8. Android活动检查服务启动另一个活动
- 9. 是否可以在try/catch中启动一个活动?
- 10. 活动不是来自另一个活动
- 11. 启动活动没有启动第一
- 12. 检查一个活动中的所有radiogroups是否被检查
- 13. Instrumentation.ActivityMonitor是否可以查找正在启动的任何活动?
- 14. 检查是否在服务中启动活动
- 15. 检查活动是否由特定活动触发
- 16. 意图:启动一个活动,无法启动第二个活动
- 17. Android/Java:检查arraylist是否为空,然后启动另一个活动
- 18. 需要检查一个活动是否有父活动存在或不存在
- 19. laravel检查用户是否活动?
- 20. 如何检查活动是否开放
- 21. 检查活动是否有效
- 22. 检查活动是否存在视图
- 23. 检查一个按钮是否在第一次启动时点击一个活动android
- 24. 是否可以有多个启动器活动?
- 25. 如何检查当前活动是否是java中的主要/启动器活动
- 26. 如何检查相机应用程序是否是服务的活动活动?
- 27. 无法启动来自ListActivity的活动
- 28. 以前自动启动新活动
- 29. android检查一个活动是从一个动作开始还是从另一个活动开始?
- 30. 是否可以启动一个活动作为一个新进程
GET “alreadyShown” 从SharedPreferences如果== false然后显示表单并将“alreadyShow”= true放入SharedPreferences – Selvin
,如果该应用程序尚未在市场上销售 – Blackbelt
@blackbelt,则该工作方式将起作用。 。什么?他问如何知道活动何时已经开启一次。就像新用户第一次查看主要活动一样。 –