标签: back

在Android应用中设置"后退"按钮是否合理?

请给我反馈是否在活动中有一个后退按钮是好的做法,还是只是废话?也许有些Android手机没有后退/返回键?或者所有型号都有它们吗?

后退按钮位于之后发送的任何活动中

android button back android-activity

10
推荐指数
1
解决办法
5836
查看次数

Android后退按钮不会返回上一个活动

我有一个有两个活动的应用程序:MainActivity和SettingsActivity.MainActivity有一个菜单,其中包含一个"设置"菜单项.单击此菜单项时,它会以意图启动SettingsActivity.活动开始后,我点击左上角的后退按钮,没有任何反应.我假设自从使用intent启动活动后,活动堆栈将自动管理.我想回到MainActivity.这个假设我错了吗?

MainActivity.onMenuItemSelected

public boolean onMenuItemSelected(int featureId, MenuItem item) {
    int itemID = item.getItemId();

    if(itemID == R.id.settings) {
        Intent intent = new Intent(this, SettingsActivity.class);
        startActivity(intent);
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

SettingsActivity

public class SettingsActivity extends PreferenceActivity {

    public static final String TEST = "test";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }
}
Run Code Online (Sandbox Code Playgroud)

java android back preferenceactivity android-activity

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

如何让浏览器的后退按钮将我带到以前的URL?(角度ui路由器)

我正在使用有角度的ui路由器进行我的前端路由,我似乎无法通过浏览器的后退按钮将我带到最新的URL.

让我来证明一下.

让我们说我从这里开始

/#/myapp/
Run Code Online (Sandbox Code Playgroud)

经过一些点击后,我动态调整了我的网址

 /#/myapp/12345
Run Code Online (Sandbox Code Playgroud)

假设我在页面上保留时单击一个日期选择器

/#/myapp/12345?start=2016-01-21&end=2016-01-28
Run Code Online (Sandbox Code Playgroud)

我可以通过使用$ scope'd函数与$ location.url一起完成此操作

真棒.到现在为止还挺好.

假设我通过点击导航远离此

<a href="#"> My App </a>
Run Code Online (Sandbox Code Playgroud)

其中,由于我设置路由的方式

myApp.config([
    '$stateProvider', '$urlRouterProvider',
    function($stateProvider, $urlRouterProvider) {

        $stateProvider.state('myapp',
            url : '/myapp/*id?start&end',
            templateUrl : '<path to my template>',
            controller : '<name of my controller>'
        );

        // more routes

        $urlRouterProvider.otherwise('/myapp/');

    }
]);
Run Code Online (Sandbox Code Playgroud)

将默认返回初始状态

/#/myapp
Run Code Online (Sandbox Code Playgroud)

好的,到目前为止,还是那么好.但是,当我点击浏览器的后退按钮时,我会被带回去

/#/myapp
Run Code Online (Sandbox Code Playgroud)

而不是我期望的

/#/myapp/12345?start=2016-01-21&end=2016-01-28
Run Code Online (Sandbox Code Playgroud)

我只能猜测我在浏览页面时生成的中间网址没有被浏览器的历史记录捕获...我认为这是合理的.如何让我的浏览器识别这些中间步骤,以便我可以正确回溯?

browser url-routing back angularjs angular-ui-router

10
推荐指数
1
解决办法
2530
查看次数

应用关闭后恢复Android后备堆栈

在多个会话之间管理/恢复应用程序堆栈的最佳做法是什么?

工作流程的例子:

  1. 活动A开始(堆栈:A)
  2. 活动B开始(堆栈:AB)
  3. 活动C开始(堆栈:ABC)
  4. ...
  5. 用户使用不同的应用程序(比如GMail应用程序)一段时间
  6. ...
  7. 用户返回我的应用程序,但后端堆栈已被Android清除.

在第7步,我想恢复活动C,如果用户按下后退按钮2次,它将返回活动B,然后返回活动A.

[编辑]添加详细信息.

在上面的第7步之后,Android中默认情况发生的是:

  1. 活动A已启动(堆栈:空,并添加了C)

我希望用户感觉他仍在使用相同的会话:

  1. 活动C恢复(堆栈:ABC)
  2. 用户按下后退按钮,活动B恢复(堆栈:AB)
  3. 用户按下后退按钮,活动A恢复(堆栈:A)

在避免内存泄漏的同时,解决这种情况的好方法是什么?

[第二次编辑]我一直在为所有活动使用commong类UIController制作一个解决方法,并使用LauncherActivity将逻辑委托给UIController.

因为我只需要在ActivityC启动时重建后台堆栈,这个解决方案似乎工作正常:

public class UIController
{
    private boolean _launched = false;

    static private final UIController __instance = new UIController();
    static public UIController getInstance() { return __instance; }

    // Enforces the Singleton Pattern by preventing external access to constructor
    private UIController() { }

    public void onActivityCreated(Activity activity) {
        if (!_launched)
        {
            if ( shouldRebuildStack() )
            {
                // Rebuild Activity stack

                // …
Run Code Online (Sandbox Code Playgroud)

java stack android back android-activity

9
推荐指数
1
解决办法
3070
查看次数

Android WebView canGoBack始终如一

我有一个加载社交媒体页面的WebView.我重写了Back按钮以goBack在WebView上调用该方法,直到canGoBack()返回false.然后它打电话super.onBackPressed().问题是Twitter和YouTube使用Javascript的方式会canGoBack()返回,true除非你很快点击后退按钮4次.

我已尝试使用当前网址检查原始网址,但该网页的网址与传入的网址不同.

有没有人知道如何让后退按钮调用WebView的goBack方法,直到你开始,然后调用super.onBackPressed

javascript android back webview

9
推荐指数
1
解决办法
2368
查看次数

Android - 使用吐司确认应用退出

我是Android开发的新手,我想要它,所以当用户按下主活动上的后退按钮时,会出现一个Toast消息,其中"再次按下后退按钮确认退出"消息.我该怎么做?这是我到目前为止:

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    Toast s = Toast.makeText(getBaseContext(), "Press back again to exit", Toast.LENGTH_LONG);
    s.show();
    wait();

    public boolean onBackPressed() {
        finish();    
    }
}
Run Code Online (Sandbox Code Playgroud)

confirm android exit back toast

9
推荐指数
1
解决办法
9417
查看次数

离开Android应用程序与后退按钮

我希望我的Android应用程序的用户在按某个活动时退出我的应用程序.可以这样做吗?

android back android-lifecycle

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

ios7新的平移手势回到导航堆栈中并不清楚tableview选择

我有一个类似Notes的应用程序:uitableviewcontroller通过将它们推送到导航堆栈来显示单个注释.我决定使用ios7后退按钮和随附的平移手势识别器.

我唯一的修改是通过在推送详细视图控制器之前将from-controller的navigationItem标题设置为空字符串来从按钮中删除文本,因为建议在/sf/ask/1320908991/ 7 -导航栏-自定义后退按钮,没有标题

按钮本身工作正常,但当我通过平移手势从笔记返回到笔记表视图时,不会清理tableview选项!我刚刚过渡的音符行仍然显示为选定的一行.任何想法在这里可能是错的?

我已经检查了标准的Notes应用程序,它就像一个魅力.

back uitableview gesture uinavigationcontroller ios7

9
推荐指数
1
解决办法
1588
查看次数

注销Angular.js时删除模板缓存

一旦用户点击注销,如何删除Angular模板缓存?我们进行了彻底的研究,并尝试实施大部分可用的解决方案.我们试过以下

HTML元标记

<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Run Code Online (Sandbox Code Playgroud)

服务器端

res.setHeader('cache-control', 'no-cache', 'no-store', 'must-revalidate');
Run Code Online (Sandbox Code Playgroud)

使用Javascript

我们尝试删除此博客上指定的浏览器历史记录

我们现在面临的问题是,当用户从我们的应用程序退出并按下后退按钮时,他显示空的html模板,因为服务未缓存,我们如何确保模板不缓存?

caching back browser-cache angularjs

9
推荐指数
1
解决办法
2万
查看次数

如何在 Flutter 应用程序中同时显示抽屉按钮和后退按钮?

为了在深度导航中更快地导航到根页面,需要在AppBar 中显示 Back 和 Drawer 图标按钮。

在此处输入图片说明

如何在 Flutter 应用程序中做到这一点?

appbar back navigation-drawer flutter

9
推荐指数
1
解决办法
4443
查看次数