来自Async Subclass的Android应用程序完成()

时间:2013-07-30 15:41:42

标签: android android-intent android-activity

我使用Async Class作为子类。成功完成后,我想去一个活动,假设ListActivity。

但是在达到ListActivity之后,当我点击“返回”时它会回到之前的活动本身。所以我尝试了“完成()”。但是我收到了一个错误。

我的代码看起来像。

protected void onPostExecute(String result) {

        if(flags.equals(1)){
            Intent homepage = new Intent(GCMIntentService.this, ListActivity.class);
            homepage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(homepage);
            finish();
        }
        else {

任何人都可以知道如何在Async Subclass中使用finish()吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

启动意图后删除当前活动,调用currentActivity.this.finish();

    protected void onPostExecute(String result) {

        if(flags.equals(1)){
            Intent homepage = new Intent(GCMIntentService.this, ListActivity.class);
            homepage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(homepage);
            currentActivity.this.finish()
            ...
         }

答案 1 :(得分:0)

YourClassName.this.finish()其中YourClassName是包含AsyncTask的类的名称。

编辑: GCMIntentService实际上是GCMBaseIntentService的实例,而不是Activity。因此它没有finish()方法。停止服务的正确方法是致电stopSelf()(doc here)。因此,要停止服务,请致电GCMIntentService.this.stopSelf()。你可能不需要这样做,因为当你开始新的Activity时,Android很可能会为你处理它。

注意:GCMBaseIntentService已被弃用,现在最好使用Google Cloud Messaging API