我写简单的应用程序,在我的活动中,我用这种方法调用服务:
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)
运行到此服务方法中?
答案 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