Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
为什么即使在startActivity()被触发后,Android活动仍会一直运行到方法结束?_Android_Android Activity - Fatal编程技术网

为什么即使在startActivity()被触发后,Android活动仍会一直运行到方法结束?

为什么即使在startActivity()被触发后,Android活动仍会一直运行到方法结束?,android,android-activity,Android,Android Activity,我为Android编写了附带的代码,以检查以下场景: Activity#1通过startActivity(intent)调用Activity#2(在本例中,通过单击UI中的按钮触发) 活动#2由用户中止(通过按下“返回”按钮) 我想知道活动#1是否会从结束点(即startActivity之后)继续运行,还是会忽略startActivity之后的任何代码直到方法结束,并等待进一步的事件 令我大吃一惊的是,我发现活动#1一直在“后台”运行,直到方法结束,甚至在活动#2启动之后。。。 我增加了一些延迟

我为Android编写了附带的代码,以检查以下场景:

  • Activity#1通过startActivity(intent)调用Activity#2(在本例中,通过单击UI中的按钮触发)

  • 活动#2由用户中止(通过按下“返回”按钮)

  • 我想知道活动#1是否会从结束点(即startActivity之后)继续运行,还是会忽略startActivity之后的任何代码直到方法结束,并等待进一步的事件

    令我大吃一惊的是,我发现活动#1一直在“后台”运行,直到方法结束,甚至在活动#2启动之后。。。 我增加了一些延迟,但这并没有改变任何事情。 有人能解释一下这里发生了什么吗

    谢谢

    尤西


    发生这种情况是因为在backbackback中添加了活动#1-请参见:

    活动直到调用finish()结束才结束。Mirat,我通读了backbackback上的文章,但它没有回答我的问题。文章中说“当当前活动启动另一个活动时,新活动被推到堆栈顶部并获得焦点。上一个活动保留在堆栈中,但被停止。”但似乎初始活动并没有真正停止,而是一直运行到方法结束。有人能解释为什么会这样吗?
    public void Test2Intents(View v)
    {
        Intent i = new Intent(android.content.Intent.ACTION_VIEW, 
                        Uri.parse("http://www.google.com"));
        startActivity(i);
        try
        {
            Thread.sleep(5000);
        } catch (InterruptedException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Toast.makeText(getApplicationContext(), "After 1st Intent", Toast.LENGTH_LONG).show();
    
        Intent i2 = new Intent(android.content.Intent.ACTION_VIEW, 
                Uri.parse("http://www.yahoo.com"));
        startActivity(i2);  
        try
        {
            Thread.sleep(5000);
        } catch (InterruptedException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Toast.makeText(getApplicationContext(), "After 2nd Intent", Toast.LENGTH_LONG).show();
    }