Questions tagged «back-button»

30
单击返回按钮两次以退出活动
我最近在许多Android应用程序和游戏中都注意到了这种模式:单击“后退”按钮以“退出”该应用程序时,Toast会出现类似“请再次单击BACK退出”的消息。 我想知道,正如我越来越经常看到的那样,这是您可以在活动中以某种方式访问​​的内置功能吗?我看过许多类的源代码,但似乎找不到任何东西。 当然,我可以考虑几种方法来轻松实现相同的功能(最简单的方法可能是在活动中保留一个布尔值,该布尔值指示用户是否已经单击过一次……),但我想知道这里是否已经有东西了。 编辑:正如@LAS_VEGAS所提到的,在传统意义上我并不是真的意思是“退出”。(即终止),我的意思是“如果可行的话,请返回到启动应用程序启动活动之前打开的所有内容” :)

8
Android-如何替代“后退”按钮,使其无法完成我的活动?
我目前有一个活动,当它显示时,一个通知也将显示在通知栏中。 这样,当用户按下主页时,活动被推到后台,他们可以通过通知返回活动。 当用户按下“后退”按钮时,会出现问题,我的活动被销毁,但通知仍然保留,因为我希望用户能够按回去,但仍然能够通过通知进入活动。但是,当USER尝试执行此操作时,我会得到Null指针,因为它试图开始一项新活动,而不是恢复旧活动。 所以从本质上讲,我希望“后退”按钮的作用与“主页”按钮完全相同,这是到目前为止我尝试过的方法: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); } return super.onKeyDown(keyCode, event); } public void onBackPressed() { Log.d("CDA", "onBackPressed Called"); Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); return; …


5
退出后防止用户看到以前访问过的安全页面
我要求最终用户在注销/退出后不能返回受限页面。但是目前,最终用户可以通过浏览器后退按钮,访问浏览器历史记录甚至通过在浏览器地址栏中重新输入URL来做到这一点。 基本上,我希望最终用户退出后不能以任何方式访问受限页面。我怎样才能做到最好?我可以使用JavaScript禁用后退按钮吗?

10
如何使用后退按钮检测用户是否进入页面?
此问题类似于跟踪用户在浏览器上单击后退按钮时的问题,但不相同...我有一个解决方案,并将其发布在此处以供参考和反馈。如果有人有更好的选择,我全都听! 情况是,我的页面上有一个“就地编辑”功能,例如flickr。即有一个“单击此处添加描述” DIV,单击该按钮将变为带有“保存”和“取消”按钮的TEXTAREA。单击“保存”将数据发布到服务器以更新数据库,并将新的描述放在DIV中代替TEXTAREA。如果刷新页面,则会使用“单击以编辑”选项从数据库中显示新的描述。这些天,相当标准的Web 2.0东西。 问题是,如果: 页面加载时没有描述 用户添加了说明 通过单击链接将页面导航到远离 用户单击后退按钮 然后,显示的内容(从浏览器的缓存中显示)是页面的版本,其中不包含包含新描述的动态修改的DIV。 这是一个相当大的问题,因为用户认为他们的更新已丢失,并且不一定了解他们需要刷新页面才能看到更改。 因此,问题是:如何在页面加载后将其标记为已修改,然后检测用户何时“返回”页面并在这种情况下强制刷新?

13
防止浏览器中的iframe缓存
如何防止Firefox和Safari缓存iframe内容? 我有一个简单的网页,其中包含一个iframe到另一个网站上的页面。外部页面和内部页面都具有HTTP响应标头,以防止缓存。当我单击浏览器中的“后退”按钮时,外部页面正常工作,但是无论如何,浏览器始终会检索iframed页面的缓存。IE可以正常工作,但是Firefox和Safari给我带来了麻烦。 我的网页看起来像这样: <html> <head><!-- stuff --></head> <body> <!-- stuff --> <iframe src="webpage2.html?var=xxx" /> <!-- stuff --> </body> </html> 该var变量总是变化。尽管事实上iframe的URL已更改(因此,浏览器应向该页面发出新请求),但浏览器只是获取缓存的内容。 我检查了来回的HTTP请求和响应,并且注意到即使外层页面包含<iframe src="webpage2.html?var=222" />了浏览器,它仍然可以访存webpage2.html?var=111。 到目前为止,这是我尝试过的方法: 使用随机var值更改iframe网址 将Expires,Cache-Control和Pragma标头添加到外部网页 将Expires,Cache-Control和Pragma标头添加到内部网页 我无法执行任何JavaScript技巧,因为我被同源政策所阻止。 我的想法不多了。有谁知道如何阻止浏览器缓存iframed内容? 更新资料 我按照Daniel建议执行的另一项测试安装了Fiddler2,但不幸的是,我仍然得到相同的结果。 这是我执行的测试: 外页Math.random()在JSP中使用生成随机数。 外页在网页上显示随机数。 外页调用iframe,传入随机数。 内页显示随机数。 通过此测试,我可以准确地看到哪些页面正在更新以及哪些页面已缓存。 外观测试 为了进行快速测试,我加载了页面,导航到另一个页面,然后按“返回”。结果如下: 原始页面: 外页:0.21300034290246206 内页:0.21300034290246206 离开页面,然后回击: 外页:0.4470929019483644 内页:0.21300034290246206 这表明即使外部页面使用URL中的其他GET参数调用内部页面,也正在缓存内部页面。由于某种原因,浏览器会忽略iframe正在请求新网址的事实;它只是加载旧的。 提琴手测试 果然,提琴手证实了同一件事。 (我加载页面。) 称为外页。HTML: …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.