Android,使用线程启动服务并在完成后警告活动

时间:2011-10-08 11:29:32

标签: android multithreading service

我有一个服务,它有一个从URL下载图像并返回Uri的方法。 当具有所有预期功能时,该服务将变得更加复杂。因此, 我在一个线程中调用它的方法。

我的问题是如何警告服务已完成它的活动。

我可以更改类isFinished变量,但活动必须不断检查 因为它的价值。

我只是希望服务告诉活动它已完成工作且资源已完成 可供使用。

我在调用stopSelf()并且活动是的服务的行中想到了一些东西 通过“onServiceDisconnected”发出警告,但这似乎并非“政治正确”。

提前致谢

2 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点。 1.您可以通过触发意图来开始您的活动。 2.当您的接收者接收到意图并且在此方法中调用了接收方法时,您可以在应用中广播意图并为其编写接收器,您可以使用意图开始您的活动。

...欢呼声

答案 1 :(得分:-2)

public class MyActivity extends Activity{

    public MyActivity() {
        ...
        MyThread thread = new MyThread(this);
        thread.start();
    }

    public void onFinishedThread(...) {

    }
}

class MyThread extends Thread {

    MyActivity activity;

    public MyThread(MyActivity activity) {
        this.activity = activity;
    }

    public void run() {
        // do work
        ...
        this.activity.onFinishedThread(...);
    }
}