代码之家  ›  专栏  ›  技术社区  ›  Mabjik

传递参数中的主活动

  •  0
  • Mabjik  · 技术社区  · 11 年前

    我需要在UI线程中启动AsyncTask,但构造函数具有(MainActivity parentActivity) 参数。我真的不明白为什么要实施它,以及我必须如何通过它。

    这里Eclipse说“无法将MainActivity解析为变量。”Activity.MainActivity也是如此。

    new DownloaderTask(MainActivity).execute();`
    

    还有构造函数。

    public DownloaderTask(MainActivity parentActivity) {
        super();
    
        mParentActivity = parentActivity;
        mApplicationContext = parentActivity.getApplicationContext();
    
    }
    
    2 回复  |  直到 11 年前
        1
  •  0
  •   Hamid Shatu Hareshkumar Chhelana    11 年前

    更改此行。。。

    new DownloaderTask(MainActivity).execute();
    

    对此。。。

    new DownloaderTask(MainActivity.this).execute();
    

    而你正在路过 Context 属于 MainActivity 而不是活动。。。所以在 DownloaderTask() 构造函数,参数将为 上下文 类型不是 主要活动 …构造函数应如下所示。。。

    public DownloaderTask(Context context) {
        super();
    
        mApplicationContext = context;
    
    }
    
        2
  •  0
  •   dustz stinepike    7 年前

    如果你在打电话,你可以这样打 直接地 从主活动

    new DownloaderTask(this).execute();
    

    或者如果你从 内部类 你可以这样打电话

    new DownloaderTask(MainActivity.this).execute();