【问题标题】:When to show dialogbox [duplicate]何时显示对话框[重复]
【发布时间】:2016-09-14 12:02:57
【问题描述】:

所以我的应用程序有一个 Activity A 和一些其他的 Activity B、C、D 等,所有这些都在来自 Activity A 的不同点击时打开。 我的要求是每次从外部打开应用程序时显示一个“Enter Pin”对话框(第一次启动应用程序、解锁屏幕、暂停后恢复应用程序以及使用其他应用程序)。

但是当我打开和关闭其他活动(B、C、D 等)时,不应显示对话框。

但在这两种情况下,都会调用 onPause->onStop->onRestart->onResume。 那么我应该如何区分用户是否已经离开了应用程序以及我应该将我的 dialog.show() 放在哪里

【问题讨论】:

  • 你能给我一些代码吗
  • @Haroon 我还没有写任何代码,我现在正在弄清楚数据流
  • 您可以实现所有显示对话框的代码都将进入活动A,因此与水獭活动无关
  • @Haroon 我不认为你理解我的问题,但感谢你的时间。
  • 我在link 找到了解决方案,感谢@xAqweRx 将我重定向到那里。

标签: android android-activity dialog activity-lifecycle


【解决方案1】:

Activity A 这样做,

@override
onCreate(){
 SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();
  editor.putBoolean("isRunning", true);
  editor.commit();
}

@override
onStop(){
  SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();
  editor.putBoolean("isRunning", false);
  editor.commit();
}

onResume() 中检查首选项,如果true 则显示您的对话框。

@override
onResume(){

SharedPreferences pref = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
if(pref.getBoolean("isRunning",false)){
    //Show your dialog here
 }

}

注意:对不起,是直接用编辑器写的,用IDE后我会编辑,但要使用这个逻辑。

【讨论】:

  • 很抱歉,但这不是解决方案,我在link 找到了解决方案,但感谢您的宝贵时间。
  • @user3024990 没关系...但是有一些知识。保持原样。很高兴听到您找到解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
  • 2011-06-07
  • 2016-03-04
  • 1970-01-01
  • 2022-11-10
  • 2020-10-15
  • 1970-01-01
相关资源
最近更新 更多