0

i write simple application,in the my activity i call the service with this method:

 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);

    }

and in the my service fetch the image url from server,and i want Load this image on the activity ImageView,my service code is:

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;
    }


how can i run the findViewByid(R.imageView) into this service method?

behzad razzaqi
  • 93
  • 2
  • 10

2 Answers2

2

You need to set Broadcast Receiver after image successfully downloaded. Register broadcast receiver in you activity and do update your image view. Or You can simply create Async task only. No need to create service.

-1

My 1st instinct is that you should instead have the Activity bind to your service and handle the UI update on its side instead of the Service directly modifying the Activity.

See more info here: http://developer.android.com/reference/android/app/Service.html#LocalServiceSample

And an example here: Example: Communication between Activity and Service using Messaging

Community
  • 1
  • 1
Ankur Samarya
  • 219
  • 1
  • 3
  • 15