Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的活动堆栈问题_Android_Android Activity_Android Intent_Stack Trace - Fatal编程技术网

android中的活动堆栈问题

android中的活动堆栈问题,android,android-activity,android-intent,stack-trace,Android,Android Activity,Android Intent,Stack Trace,我是android开发的新手,我开发了一个小应用程序,但我在链接不同的活动(即以期望的方式在活动之间导航)方面遇到了问题。 我很抱歉问这些问题,但我尝试了谷歌不同的解决方案,但没有一个对我有效,我仍然不清楚这些概念 Plz帮助 我有一些问题: 如何删除堆栈顶部的活动 如何从活动堆栈中删除所有活动 带有(Intent.FLAG\u ACTIVITY\u NO\u HISTORY)的Intent(A.this,B.class)不会将活动B添加到堆栈中,但如果我想将活动A添加到堆栈中呢 是否有一种方法

我是android开发的新手,我开发了一个小应用程序,但我在链接不同的活动(即以期望的方式在活动之间导航)方面遇到了问题。 我很抱歉问这些问题,但我尝试了谷歌不同的解决方案,但没有一个对我有效,我仍然不清楚这些概念

Plz帮助

我有一些问题:

  • 如何删除堆栈顶部的活动

  • 如何从活动堆栈中删除所有活动

  • 带有(Intent.FLAG\u ACTIVITY\u NO\u HISTORY)的Intent(A.this,B.class)不会将活动B添加到堆栈中,但如果我想将活动A添加到堆栈中呢

  • 是否有一种方法可以可视化活动堆栈的内容(这将帮助我在调用活动时设置适当的标志)

  • 我有一个活动A(有3个按钮),我从中调用活动B,在那里我用用户输入完成一些操作,我想回到活动A,但我只想显示这3个按钮中的1个,我如何才能做到这一点? (我面临的问题是A中的活动有3个按钮,因此我想通过删除它并创建新的意图或在堆栈中重新启动相同的条目来重新启动它,以便根据条件显示1个按钮)

  • 提前谢谢

    如何删除堆栈顶部的活动

    我不知道你认为“删除”对于活动意味着什么。我不知道你所说的关于活动的“顶层”是什么意思

    假设您的意思是“如何销毁前台活动”,该活动可以对自身调用
    finish()

    如何从活动堆栈中删除所有活动

    你没有。您可以使用
    Intent.FLAG\u ACTIVITY\u CLEAR\u TOP
    Intent.FLAG\u ACTIVITY\u SINGLE\u TOP
    调用
    startActivity()
    ,以销毁堆栈上的所有当前活动,留下您现在正在启动的活动

    带有(Intent.FLAG\u ACTIVITY\u NO\u HISTORY)的Intent(A.this,B.class)不会将活动B添加到堆栈中,但如果我想将活动A添加到堆栈中呢

    调用A的
    startActivity()

    是否有一种方法可以可视化活动堆栈的内容(这将帮助我在调用活动时设置适当的标志)

    您可以筛选adb shell dumpsys以获得此类信息,但它并不特别友好

    你的最后一个问题我无法理解,对不起

    如何删除堆栈顶部的活动

    我不知道你认为“删除”对于活动意味着什么。我不知道你所说的关于活动的“顶层”是什么意思

    假设您的意思是“如何销毁前台活动”,该活动可以对自身调用
    finish()

    如何从活动堆栈中删除所有活动

    你没有。您可以使用
    Intent.FLAG\u ACTIVITY\u CLEAR\u TOP
    Intent.FLAG\u ACTIVITY\u SINGLE\u TOP
    调用
    startActivity()
    ,以销毁堆栈上的所有当前活动,留下您现在正在启动的活动

    带有(Intent.FLAG\u ACTIVITY\u NO\u HISTORY)的Intent(A.this,B.class)不会将活动B添加到堆栈中,但如果我想将活动A添加到堆栈中呢

    调用A的
    startActivity()

    是否有一种方法可以可视化活动堆栈的内容(这将帮助我在调用活动时设置适当的标志)

    您可以筛选adb shell dumpsys以获得此类信息,但它并不特别友好

    对不起,你的最后一个问题我无法理解。

    最后一个问题的答案: 使用startActivityForResult启动活动B并覆盖活动A中的onActivityForResult。当活动B完成/退出时,将调用onActivityResult。 您可以在onActivityResult中将按钮的可见性设置为“消失/不可见”。

    最后一个问题的答案: 使用startActivityForResult启动活动B并覆盖活动A中的onActivityForResult。当活动B完成/退出时,将调用onActivityResult。
    您可以在onActivityResult中将按钮的可见性设置为“消失/不可见”。

    希望您已经解决了问题希望您已经解决了问题感谢您的回答,他们真的对我很有帮助!谢谢你的回答,他们对我真的很有帮助!