【问题标题】:AsyncTask onPostExecute - new intent errorAsyncTask onPostExecute - 新意图错误
【发布时间】:2014-04-29 04:22:21
【问题描述】:

我的 AsyncTask 类中有这段代码:

    protected void onPostExecute(Integer result) 
    {
        if (result == 1)
        {
            try {
                Global.mmOutStream.write(99);
            } catch (IOException e) { }

            Intent intentTrashcanLocation = new Intent(TrashcanLocationActivity.this, TrashcanLocationActivity.class);     
            startActivity(intentTrashcanLocation);
        }

    }

这给了我“Intent”行的错误:

  • 行断点:TrashcanOnWayActiity$waitarrival [line:53] - onPostExecute(Integer)
  • TrashcanLocationActivity 类型的封闭实例在范围内不可访问

我想要做的基本上是在异步获得某些输入时显示下一页。我无法解决这个问题。任何帮助将不胜感激!

【问题讨论】:

  • 您正在 onPostExecute 中启动相同的 Activity。如果TrashcanOnWayActiity 是当前活动,则将TrashcanOnWayActiity.this 作为第一个参数传递给 Intent

标签: android android-intent android-asynctask


【解决方案1】:

你使用的是同一个类

Intent intentTrashcanLocation = new Intent(TrashcanLocationActivity.this,
                                           TrashcanLocationActivity.class);     
startActivity(intentTrashcanLocation);

应该是这样的

Intent intentTrashcanLocation = new Intent(TrashcanLocationActivity.this,
                                           TrashcandetailActivity.class);     
startActivity(intentTrashcanLocation);

【讨论】:

  • 哦!那么第一个参数是当前活动,第二个参数是下一个活动?
  • 是的。它解决了问题!很抱歉在询问之前没有进行足够的研究。要学习的东西太多了。
【解决方案2】:

试试这个,

        @Override
            protected void onPostExecute(Void result) 
           {
               super.onPostExecute(result);
               if (result == 1)
               {
                try {
                    Global.mmOutStream.write(99);
                    } catch (IOException e) { }

               Intent intent = new Intent(TrashcanLocationActivity.this, NextActivity.class); 
               getApplicationContext().startActivity(intent);
              }
           }

【讨论】:

    【解决方案3】:

    你的代码没问题,但是你又调用了同一个 Activity

     Intent intentTrashcanLocation = new Intent(TrashcanLocationActivity.this, TrashcanLocationActivity.class);     
                startActivity(intentTrashcanLocation);
    

    将TrashcanLocationActivity.class替换为您要调用的活动.class

    【讨论】:

      猜你喜欢
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 2016-09-17
      • 2012-06-15
      • 2023-03-25
      • 1970-01-01
      • 2018-03-30
      相关资源
      最近更新 更多