Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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_Childactivity - Fatal编程技术网

如何在Android中引入父活动?

如何在Android中引入父活动?,android,android-activity,childactivity,Android,Android Activity,Childactivity,正如我们所知,startActivityForResult()用于从父活动获取任务的结果。当我们点击setResult()时。它将结果返回给父活动 子活动意味着它应该保持持久状态。即用户单击子活动上的按钮时。它不会完成该活动并显示父活动。同样,我可以从父活动转到子活动。如果子活动不存在,它将启动一个新的子活动,否则它将显示具有持久内容的现有子活动 编辑: 简单地说,我的父活动开始一个新的子活动。现在这两项活动都应该是活跃的。如何在不完成子活动的情况下调用父活动(换句话说,如何在父活动之前调用)?

正如我们所知,
startActivityForResult()
用于从父活动获取任务的结果。当我们点击
setResult()
时。它将结果返回给父活动

子活动意味着它应该保持持久状态。即用户单击子活动上的按钮时。它不会完成该活动并显示父活动。同样,我可以从父活动转到子活动。如果子活动不存在,它将启动一个新的子活动,否则它将显示具有持久内容的现有子活动

编辑:

简单地说,我的父活动开始一个新的子活动。现在这两项活动都应该是活跃的。如何在不完成子活动的情况下调用父活动(换句话说,如何在父活动之前调用)?在这种情况下

  • 您不能使用
    startActivity()
    。因为它创建了一个新的活动实例。不存在父活动
  • 您不能使用
    startActivityForResult()
    。因为它完成了子活动实例

这在安卓系统中可能吗?有什么想法吗?

这在Android中是不可能的。活动生命周期中不提供此类情况

可以通过重用单个活动和切换布局来模拟这种行为。您必须存储活动的整个状态,然后将布局更改为应该是子活动的布局,如果用户切换回父活动,则必须保存子活动的状态并恢复父活动的状态。您还需要自己处理back键,以防止用户按下它并返回到启动父活动的活动

一种更简单的方法是使用,让用户在选项卡之间切换。这使您能够使用两个不同的意图初始化选项卡,并且只有当用户更改回另一个选项卡时,这两个选项卡才会暂停

请设置不同的父活动和子活动,
并使用startActivity(intent)以flag开始您的活动

该方法导致两个活动属于不同的任务,通过添加标志\活动\新任务标志切换任务时,状态将保持不变


我认为应该行得通

尝试使用。

你的问题的表述方式非常混乱。看来你在问两个不同的问题。@Janusz:检查我的编辑部分。这是我的问题+1
如果用户切换回父活动,则必须保存子活动的状态并恢复父活动的状态。您还需要自己处理后退键,以防止用户按下后退键并返回到启动父活动的活动。
您知道此场景中的任何示例吗?