从Async Thread开始的活动

时间:2013-05-27 07:44:06

标签: android android-asynctask android-activity

我创建了

  

的AsyncTask

Android Activity中的

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

  

从服务器

收到“HOMEPAGE”消息

它应该启动HOMEPAGE Activity。

  

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

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

2 个答案:

答案 0 :(得分:0)

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

startActivity(new Intent(YourActivity.this, HOMEPAGE.class)); 

答案 1 :(得分:0)

让你的asyncTask保存对当前活动活动的引用:

class MyAsyncTask extends AsyncTask {

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

    // your code
}

然后您可以使用:startActivity(new Intent(a, Homepage.class))启动活动,例如在onProgressUpdate()方法中。

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