远程完成一个由intent-filter调用的活动?

时间:2014-05-04 18:35:47

标签: android android-intent activity-lifecycle

我有2项活动: A B 。 A通过Intent.ACTION_VIEW调用浏览器意图,在用户登录浏览器后,他通过intent-filter重定向到活动B. 问题是:当用户到达B时,活动A必须完成。
我知道startActivityForResult(),但我没有直接调用A-> B,它是A-> browser-> B,所以它不起作用。
但是,我不能在A中使用onStop()和onDestroy()方法,因为app会在方向更改时崩溃 我该怎么办?

2 个答案:

答案 0 :(得分:0)

  

当用户到达B时,活动A必须完成。

为什么?

如果用户从B(或浏览器)返回

,请将其关闭

我从未遇到过问题,一项活动必须完成。也许你可以稍微解释一下情况,这样我们就能更好地理解。

BTW:您也可以通过编程方式锁定方向,但我认为您的方向错误。

// hans

答案 1 :(得分:0)

对于Android API Version from 16使用finishAffinity关闭Activity B以及紧接其下方的所有活动,以便还会显示活动A.

Override

中的finish方法Activity B
 @Override
public void finish(){
    finishAffinity(); // supported only from API 16
}

默认情况下,所有活动将与包名称具有相同的taskAffinity。如果您只想关闭特定的Activities,请为所需的Affinity

设置自定义Activities名称

finishAffinity - 完成此活动以及当前任务中具有相同亲缘关系的紧随其下的所有活动。这通常在应用程序可以启动到另一个任务时使用(例如从它理解的内容类型的ACTION_VIEW),并且用户已经使用向上导航切换出当前任务并进入其自己的任务。 / em>的