Method onHandleIntent() does not get called
11,105
May be your intent service isn't starting because you are overriding onStartCommand()
method as android documentation says:
"You should not override this method
(onStartCommand())
for your IntentService. Instead, overrideonHandleIntent(Intent)
, which the system calls when the IntentService receives a start request."
Hope so this will help you
Author by
KickAss
Updated on June 06, 2022Comments
-
KickAss almost 2 years
After many hours of researching I am finally consulting official help. Why does not
onHandleIntent()
get called? Is there something wrong here?In main activity
onCreate()
:mService = new Intent(context, xyz.class); startService(mService);
That iss it. The
onStartCommand()
gets called, but notonHandleIntent()
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 the 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) { }