2011-12-12 60 views
0

在我的应用程序中,我检查是否启用了gps。如果没有,我将用户发送到设置屏幕以启用GPS。onResume在从设置屏幕返回时提早打电话

在我的onResume函数中,我从服务器请求信息,这有点费时,然后进入我的下一个Activity。我希望用户在检索信息时卡在屏幕上。相反,我看到的是应用程序位于收集信息时冻结的“设置”屏幕,然后直接转到我的下一个“活动”。

protected void onResume() { 
     if(gpsIsOn()) { 
      obtainLocationStuff(); 
      startActivity(new Intent(splashActivity.this, mainActivity.class)); 
     } else { 
      launchCloseDialog(); 
     } 

    super.onResume(); 
} 

如何在用户实际返回到我的应用程序时启动onResume?

回答

1

你不能。您必须使用后台线程进行可能耗时的操作。阅读关于AsyncTask

交互活动协调不能改变(除非在一些非常罕见的情况下)。如何协调活动描述here。但在这个例子中,一个活动开始另一个这与你所拥有的相反,但仍应该展示规则。

+0

完美。我移动了一些代码,并让我的asynctask返回。感谢您的帮助。 –