2010-06-21 87 views
0

我想按特定顺序一个接一个地运行两个系统活动。同步系统活动

现在我们知道,startActivity是一个异步操作,所以我不能保持特定的顺序。

所以我想也许我应该尝试在dialogBox中间做,但也运行dialogBox是异步的。

现在我说我尝试运行的活动是系统活动,所以我甚至不能用startActivityForResult(或mybe我可以,但我不认为它会如何帮助我)启动它们。

任何技巧我怎么能处理这个问题?

一些代码:

第一项活动:

          Intent intent = new Intent(); 
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
              intent.setAction(Settings.ACTION_APPLICATION_SETTINGS); 
              startActivity(intent); 

second activity: 

    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.setDataAndType(Uri.fromFile(tmpPackageFile 
      .getAbsoluteFile()), 
      "application/vnd.android.package-archive"); 
    startActivity(intent); 

,你可以看到,我没有那些activites任何访问,我可以从外部类/活动/服务运行及其二氧意图。

+0

从第一个开始,第一个完成时开始第二个。 – Pentium10 2010-06-21 16:20:31

+0

你能更好地解释你想要做什么吗? – Macarse 2010-06-21 16:20:32

+0

第一次活动开始后,我无法启动第二个活动,因为我没有访问第一个活动,这是一个系统活动,我写了一些代码。 – rayman 2010-06-22 06:17:04

回答

0

您应该可以使用startActivityForResult ..该函数的第二个参数是一个唯一的ID,您可以使用该ID来跟踪哪个活动结束。

在调用活动的onActivityResult中,检查刚刚完成的活动,然后使用另一个对startActivityForResult的调用来启动下一个活动(或者,如果您不关心第二个,startActivity会发生什么)。

+0

我已经尝试过..但它没有工作,onActivityResult从未被调用。正如我所说,这不是我的活动,这是系统活动,不知道什么时候他们叫thire finish();方法。 – rayman 2010-06-22 06:29:16

+0

那么从活动回来后会发生什么?它是否会返回到您的活动? – 2010-06-22 16:08:27

0

我可能会错过这条船,看来你应该把你的代码放到第一个活动的处理程序中,例如按下按钮或从ListView中选择一个项目时,开始第二个活动。有关第一个Activity如何终止的更多信息将有所帮助。

+0

第一个活动终止(我想),只要你按回来..这是一个系统设置窗口。 你能写一些这个解决方案的例子吗?谢谢。 – rayman 2010-06-22 06:30:48