Android服务更改活动imageview图片

时间:2015-03-30 12:14:59

标签: android

我写简单的应用程序,在我的活动中,我用这种方法调用服务:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newsactivity);
        Bundle extras = getIntent().getExtras();
        value= extras.getString("myid");
        Intent intent = new Intent(this, newsservice.class);
        intent.putExtra("behid", value);
        startService(intent);

    }

并在我的服务中从服务器获取图片网址,我想在活动ImageView上加载此图片,我的服务代码是:

public class newimageService extends Service {
    String Behid;
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Behid= intent.getStringExtra("behid");

        new HttpAsyncTask().execute("http://sample.org/shownewsimage.aspx");
        //in this part show the image into image view
        this.stopSelf();

        return Service.START_FLAG_REDELIVERY;
    }
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }


如何将findViewByid(R.imageView)运行到此服务方法中?

2 个答案:

答案 0 :(得分:2)

成功下载图像后需要设置广播接收器。在您的活动中注册广播接收器并更新您的图像视图。 或者您只需创建Async任务即可。无需创建服务。

答案 1 :(得分:-1)

我的第一直觉是你应该让Activity绑定到你的服务并处理它的更新,而不是直接修改Activity的服务。

在此处查看更多信息: http://developer.android.com/reference/android/app/Service.html#LocalServiceSample

这里有一个例子: Example: Communication between Activity and Service using Messaging