OnHandleIntent () method not called

After many hours of research, I finally consult with official help. Why is the call to onHandleIntent() not called? Is something wrong here?

In the main onCreate() action:

 mService = new Intent(context, xyz.class); startService(mService); 

That's all. Called onStartCommand() , but not onHandleIntent()

 package com.autoalbumwallaperplus; import android.app.IntentService; import android.content.Intent; import android.widget.Toast; public class xyz extends IntentService { public xyz() { super("bmp"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(this,"onStartCommand works!", Toast.LENGTH_SHORT).show(); return super.onStartCommand(intent,flags,startId); } @Override protected void onHandleIntent(Intent workIntent) { Toast.makeText(this,"onHandleIntent works!", Toast.LENGTH_SHORT).show(); } } 

This is inside OnHandleIntent

  String imagepath = workIntent.getStringExtra("String"); Toast.makeText(this, "it works" , Toast.LENGTH_SHORT).show(); DisplayMetrics displayMetrics = new DisplayMetrics(); WindowManager hi = ((WindowManager) getBaseContext().getSystemService(Context.WINDOW_SERVICE)); int height = displayMetrics.heightPixels; int width = displayMetrics.widthPixels << 2; // ... First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; Bitmap decodedSampleBitmap = BitmapFactory.decodeFile(imagepath, options); // ... Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, width, height); // ... Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; decodedSampleBitmap = BitmapFactory.decodeFile(imagepath, options); // ... Set Wallpaper //Context context = getApplicationContext(); WallpaperManager wm = WallpaperManager.getInstance(this); try { wm.setBitmap(decodedSampleBitmap); } catch (IOException e) { } 
+6
source share
1 answer

Perhaps your intention does not start because you are overriding the onStartCommand() method, as the android documentation says:

"You should not override this method (onStartCommand()) for your IntentService. Instead, override onHandleIntent(Intent) , which when the IntentService receives a start request.


Hope this helps you.

+11
source

All Articles