Android-如何检测堆栈中的最终活动

天赋

我使用下面的代码来检查最后FragmentActivity弹出对话框

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // Check if there is only one fragment
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (getSupportFragmentManager().getBackStackEntryCount() == 1) {
                DlgUniversalError.shallIQuit(this, getApplicationContext()
                        .getResources().getString(R.string.doYouWantToQuit),
                        getSupportFragmentManager());
                return false;
            }
        }
        return super.onKeyDown(keyCode, event);
    }

现在假设我有一组Activity我怎么能执行相同的一个Activity是否Activity是最后的堆栈,并弹出一个对话框退出?

S

假设您有活动1,2,3 ...,其流程为:

Activity 1 -> Activity 2 -> Activity 3 -> ... and so on

您真正拥有的唯一选择是在中Activity 1,重写onBackPressed()方法如下:

@Override
public void onBackPressed(){

    /* Call the Quit Dialog here. If user presses YES,
     * call super.onBackPressed(), else if user presses NO,
     * do nothing. */

}

Fragment堆栈中是本地的应用程序,而Activity返回堆栈是本地的一个任务现在,有两种方法可以检查当前任务的Activity后台堆栈状态:

1.说你的Activity流程是

A1 -> A2 -> A3 -> A1 -> A2 -> A3 -> A1 ...

可以确保Activity 1始终以空的堆栈开始。每次您以开头Activity 1startActivity(),请使用以下FLAG_ACTIVITY_CLEAR_TOP标志进行调用

Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);

2.有一个名为isTaskRoot()的方法,可以让您知道anActivity是否是该Activity任务中的第一个,即该Activity任务的后堆栈中的最后一个这看起来很有希望。

3.事实证明,还有另一种方法可以确定anActivity是否为后堆栈中的最后一个:

    ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
    List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);

    if(taskList.get(0).numActivities == 1 && taskList.get(0).topActivity.getClassName().equals(this.getClass().getName())) {
        /* do whatever you want e.g. super.onBackPressed() etc. */
    }

为此,请android.permission.GET_TASKS向清单添加权限。

所以那里... :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android中的活动堆栈

来自分类Dev

如何从Android中的堆栈活动中获取当前活动

来自分类Dev

如何从Android中的后堆栈中删除活动?

来自分类Dev

如何从Android中的后堆栈中删除活动?

来自分类Dev

Android:从堆栈中删除活动

来自分类Dev

在Android中检测用户活动

来自分类Dev

在WebView Android中检测到URL时如何更改活动

来自分类Dev

我们如何获取活动堆栈android中的活动数量。

来自分类Dev

Android-如何导航活动堆栈/任务

来自分类Dev

从堆栈Android中删除热门活动

来自分类Dev

从堆栈Android中删除热门活动

来自分类Dev

Android后退堆栈-返回后退堆栈中的特定活动

来自分类Dev

如何清除Android中堆栈中的所有现有活动

来自分类Dev

Android如何在“活动”后堆栈“树”中“跳转到另一个分支”?

来自分类Dev

Android活动堆栈操作

来自分类Dev

Android活动堆栈

来自分类Dev

Android无限活动堆栈

来自分类Dev

如何在Android应用程序中检测全局不活动?

来自分类Dev

在Android中清除活动的历史记录堆栈

来自分类Dev

在Android活动中自定义后退堆栈

来自分类Dev

如何从Android中的B活动完成A活动

来自分类Dev

如何使用默认的后退按钮以及将活动添加到Android应用程序中的堆栈

来自分类Dev

Android活动堆栈-向后导航

来自分类Dev

在Android / PhoneGap应用中检测屏幕空闲或活动

来自分类Dev

Android从活动堆栈中获取第二个活动

来自分类Dev

在Android内,如何开始活动或如果已将该活动放在堆栈上,则如何进行该活动?

来自分类Dev

如何在活动中(或活动中)运行Android Dream Service?

来自分类Dev

Android如何检测EditText成为焦点。最终用户是否不触摸编辑文本?

来自分类Dev

Android,如何检测到该活动是从另一个活动返回的?

Related 相关文章

  1. 1

    Android中的活动堆栈

  2. 2

    如何从Android中的堆栈活动中获取当前活动

  3. 3

    如何从Android中的后堆栈中删除活动?

  4. 4

    如何从Android中的后堆栈中删除活动?

  5. 5

    Android:从堆栈中删除活动

  6. 6

    在Android中检测用户活动

  7. 7

    在WebView Android中检测到URL时如何更改活动

  8. 8

    我们如何获取活动堆栈android中的活动数量。

  9. 9

    Android-如何导航活动堆栈/任务

  10. 10

    从堆栈Android中删除热门活动

  11. 11

    从堆栈Android中删除热门活动

  12. 12

    Android后退堆栈-返回后退堆栈中的特定活动

  13. 13

    如何清除Android中堆栈中的所有现有活动

  14. 14

    Android如何在“活动”后堆栈“树”中“跳转到另一个分支”?

  15. 15

    Android活动堆栈操作

  16. 16

    Android活动堆栈

  17. 17

    Android无限活动堆栈

  18. 18

    如何在Android应用程序中检测全局不活动?

  19. 19

    在Android中清除活动的历史记录堆栈

  20. 20

    在Android活动中自定义后退堆栈

  21. 21

    如何从Android中的B活动完成A活动

  22. 22

    如何使用默认的后退按钮以及将活动添加到Android应用程序中的堆栈

  23. 23

    Android活动堆栈-向后导航

  24. 24

    在Android / PhoneGap应用中检测屏幕空闲或活动

  25. 25

    Android从活动堆栈中获取第二个活动

  26. 26

    在Android内,如何开始活动或如果已将该活动放在堆栈上,则如何进行该活动?

  27. 27

    如何在活动中(或活动中)运行Android Dream Service?

  28. 28

    Android如何检测EditText成为焦点。最终用户是否不触摸编辑文本?

  29. 29

    Android,如何检测到该活动是从另一个活动返回的?

热门标签

归档