使用AsyncTask android调用类中定义的函数

时间:2014-03-17 11:40:47

标签: android

我的代码如下: -

public class Activity2 extends ListActivity {

protected void onCreate(Bundle savedInstanceState) 
{
  .
  .
  readDatafromfile();
}

public void readDatafromfile(){
..
}

现在我想以异步方式进行读取。我为此创建了另一个类,但我无法调用方法(readDatafromfile())。

请帮忙。

1 个答案:

答案 0 :(得分:0)

您有三种选择:左

在Activity类中将readDatafromfile()定义为静态。

public class Activity2 extends ListActivity
{    public void readDatafromfile(){}    }

在AsyncTask中定义readDatafromfile()并将您的Activity作为上下文传递。

public class MyAsync extends AsyncTask < Void , Void , Void >
{   
    Context ctx;
    public MyAsync ( Context ctx ){ this.ctx = ctx; }
    public void readDatafromfile(){}
}

创建并连接包含readDatafromfile()的IOOperation,让您的活动实现它,并将其传递给您的AsyncTask。

接口

public interface IOOperation
{    public void readDatafromfile();    }

活性

public class Activity2 extends ListActivity implements IOOperation
{   
    @override 
    public void readDatafromfile(){}    }

的AsyncTask

public class MyAsync extends AsyncTask < Void , Void , Void >
{   
    IOOperation reader;
    public MyAsync ( IOOperation reader){ this.reader= reader; }

    protected Void doInBackground(Void... args)
    {    reader.readDatafromfile();    }
}