0

我创造了

异步任务

在不断从服务器获取命令的 Android Activity 中。当接收到来自服务器的特定命令时,我如何启动另一个活动。在 AsyncTask 我写了无限循环,因为它

从服务器接收“主页”消息

它应该启动主页活动。

StartActivity(new Intent(null, HOMEPAGE.class))

抛出空指针异常。我应该写什么而不是 null 作为第一个参数。

4

2 回答 2

0

让您的 asyncTask 持有对您当前活动活动的引用:

class MyAsyncTask extends AsyncTask {

    public MyAsyncTask(Activity a) {
         this.a = a;
    }

    // your code
}

然后您可以通过以下方式开始活动:startActivity(new Intent(a, Homepage.class))例如在 onProgressUpdate() 方法中。

如果您想在此之后保持 AsyncTask 运行(例如,在一段时间后启动另一个活动),您必须在此之后通过回调方法或类似方法更新您的活动变量。

于 2013-05-27T07:50:53.630 回答
0

如果您的 AsyncTask 是在同一个类中实现的,则需要将您的活动上下文对象作为当前活动传递

startActivity(new Intent(YourActivity.this, HOMEPAGE.class)); 
于 2013-05-27T07:46:33.117 回答