标签: back-button

单击后退按钮两次以退出活动

我最近在很多Android应用和游戏中都注意到了这种模式:当点击后退按钮"退出"应用程序时,Toast会出现类似于"请再次单击BACK退出"的消息.

我想知道,因为我越来越频繁地看到它是一个内置的功能,你可以以某种方式访问​​活动?我查看了许多类的源代码,但我似乎无法找到任何相关内容.

当然,我可以考虑几种方法来轻松实现相同的功能(最容易的是在活动中保留一个布尔值,表明用户是否已经点击过一次......)但是我想知道这里是否有东西.

编辑:正如@LAS_VEGAS所说,我并不是指传统意义上的"退出".(即终止)我的意思是"回到应用程序启动活动启动之前打开的任何东西",如果这是有意义的:)

java android back-button

311
推荐指数
16
解决办法
21万
查看次数

Android - 如何覆盖"后退"按钮,以便它不完成()我的活动?

我目前有一个活动,当它显示时,通知也将显示在通知栏中.

这样,当用户按下主页并将活动推送到后台时,他们可以通过通知返回活动.

当用户按下后退按钮时,问题就出现了,我的活动被破坏但是通知仍然存在,因为我希望用户能够按下但仍然能够通过通知进入活动.但是当用户尝试这个时,我会尝试Null Pointers尝试启动一项新活动,而不是重新启动旧活动.

所以基本上我希望Back按钮的行为与Home按钮完全相同,这是我到目前为止的尝试方式:


        @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;
        }   
Run Code Online (Sandbox Code Playgroud)

但是上面的代码似乎仍然允许我的Activity被销毁,如何在按下后退按钮时阻止我的Activity被销毁?

android back-button nullpointerexception onkeypress android-activity

193
推荐指数
5
解决办法
32万
查看次数

如何退出应用程序并显示主屏幕?

我有一个应用程序,在主页上我有通过应用程序导航的按钮.

在那个页面上,我有一个"EXIT"按钮,当点击它时,应该将用户带到应用程序图标所在的手机上的主屏幕.

我怎样才能做到这一点?

android back-button exit

193
推荐指数
9
解决办法
32万
查看次数

注销后阻止用户查看以前访问过的安全页面

我要求最终用户在注销/注销后不能返回受限页面.但目前最终用户可以通过浏览器后退按钮,访问浏览器历史记录或甚至通过在浏览器的地址栏中重新输入URL来实现.

基本上,我希望最终用户在注销后不能以任何方式访问受限制的页面.我怎样才能做到最好?我可以用JavaScript禁用后退按钮吗?

jsp servlets back-button logout browser-history

99
推荐指数
2
解决办法
6万
查看次数

如何使用后退按钮检测用户是否已访问某个页面?

这个问题类似于用户在浏览器上点击按钮时的跟踪,但不一样......我有一个解决方案,并将其发布在此处以供参考和反馈.如果有人有更好的选择,我全都耳朵!

情况是我有一个"就地编辑"的页面,一个la flickr.即有一个"点击这里添加描述"DIV,点击时变成带有保存和取消按钮的TEXTAREA.单击"保存"将数据发布到服务器以更新数据库,并将新描述放在DIV中以代替TEXTAREA.如果刷新页面,则会使用"单击以编辑"选项从数据库中显示新描述.这些天相当标准的Web 2.0.

问题是,如果:

  1. 页面加载时没有描述
  2. 用户添加了描述
  3. 通过单击链接导航页面
  4. 用户单击后退按钮

然后显示的内容(来自浏览器的缓存)是没有包含新描述的动态修改的DIV的页面版本.

这是一个相当大的问题,因为用户认为他们的更新已丢失,并且不一定了解他们需要刷新页面才能看到更改.

因此,问题是:如何将页面标记为在加载后进行修改,然后检测用户何时"返回"并在该情况下强制刷新?

browser ajax back-button

86
推荐指数
6
解决办法
6万
查看次数

Web浏览器中的"后退"按钮如何工作?

我在网上搜索了这个问题,但我一无所获:

后退按钮的逻辑是什么?当我们点击Web浏览器上的后退按钮时会发生什么?

我真的想了解更多.

谢谢.

browser back-button

79
推荐指数
2
解决办法
5万
查看次数

防止在浏览器中使用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>
Run Code Online (Sandbox Code Playgroud)

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内容?

更新

我安装了Fiddler2,因为Daniel建议再进行一次测试,不幸的是,我仍然得到了相同的结果.

这是我进行的测试:

  1. 外页Math.random()在JSP中使用随机数生成.
  2. 外页在网页上显示随机数.
  3. 外页调用iframe,传入随机数.
  4. 内页显示随机数.

通过此测试,我能够确切地看到哪些页面正在更新,以及哪些页面被缓存.

视觉测试

为了快速测试,我加载页面,导航到另一个页面,然后按"返回".结果如下:

原始页面:

  • 外页:0.21300034290246206
  • 内页:0.21300034290246206

离开页面,然后回击:

  • 外页:0.4470929019483644
  • 内页:0.21300034290246206

这表明内部页面正在被缓存,即使外部页面在URL中使用不同的GET参数调用它.出于某种原因,浏览器忽略了iframe请求新URL的事实; 它只是加载旧的.

提琴手测试

果然,Fiddler证实了同样的事情.

(我加载页面.)

外页被调用.HTML:

0.21300034290246206
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.21300034290246206" />
Run Code Online (Sandbox Code Playgroud)

http://ipv4.fiddler:1416/page1.aspx?var = 0.21300034290246206被调用.

(我离开页面,然后回击.)

外页被调用.HTML:

0.4470929019483644
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.4470929019483644" />
Run Code Online (Sandbox Code Playgroud)

http://ipv4.fiddler:1416/page1.aspx?var = 0.21300034290246206被调用.

好吧,从这个测试中,看起来好像Web浏览器没有缓存页面,但它正在缓存iframe的URL,然后在该缓存的URL上发出新请求.但是,我仍然难以理解如何解决这个问题.

有没有人对如何阻止Web浏览器缓存iframe URL有任何想法?

browser iframe caching back-button

76
推荐指数
7
解决办法
9万
查看次数

单击后退按钮时,防止从缓存加载safari

在单击后退按钮时遇到safari加载旧YouTube视频的问题.我已经尝试将onunload =""(这里提到防止Safari 5中的后台按钮上的缓存)添加到body标签,但在这种情况下它不起作用.

有没有办法防止某个页面上的缓存加载safari?

javascript safari caching back-button

62
推荐指数
3
解决办法
7万
查看次数

按下后退按钮时,Chrome会显示ajax响应

我遇到了一个问题,如果我使用jQuery的Get方法获取一些内容,如果我点击回来,而不是实际返回历史记录中的一个页面,它会显示Ajax查询返回的内容.

有任何想法吗?

http://www.dameallans.co.uk/preview/allanian-society/news/56/Allanian-test

在上面的页面中,如果您使用在更改页面后单击后面注释的注释列表下方的分页,它会显示用于生成注释列表的HTML内容.

我注意到它并不总是这样做,但如果你点击不同的页面几次并单击后退按钮,它只是在窗口而不是网站中显示json文本.

出于某种原因,这只会影响Chrome,因为IE和Firefox工作正常.

ajax google-chrome back-button

50
推荐指数
5
解决办法
1万
查看次数

避免JSF Web应用程序上的后退按钮

我正在展示非常敏感的数据.用户从我的服务器注销后,我不希望其他用户能够看到数据点击浏览器的"后退"按钮.

我怎样才能做到这一点?

browser jsf back-button

46
推荐指数
2
解决办法
4万
查看次数