Start service in Android Start service in Android android android

Start service in Android


Probably you don't have the service in your manifest, or it does not have an <intent-filter> that matches your action. Examining LogCat (via adb logcat, DDMS, or the DDMS perspective in Eclipse) should turn up some warnings that may help.

More likely, you should start the service via:

startService(new Intent(this, UpdaterServiceManager.class));


startService(new Intent(this, MyService.class));

Just writing this line was not sufficient for me. Service still did not work. Everything had worked only after registering service at manifest

<application    android:icon="@drawable/ic_launcher"    android:label="@string/app_name" >    ...    <service        android:name=".MyService"        android:label="My Service" >    </service></application>


Java code for start service:

Start service from Activity:

startService(new Intent(MyActivity.this, MyService.class));

Start service from Fragment:

getActivity().startService(new Intent(getActivity(), MyService.class));

MyService.java:

import android.app.Service;import android.content.Intent;import android.os.Handler;import android.os.IBinder;import android.util.Log;public class MyService extends Service {    private static String TAG = "MyService";    private Handler handler;    private Runnable runnable;    private final int runTime = 5000;    @Override    public void onCreate() {        super.onCreate();        Log.i(TAG, "onCreate");        handler = new Handler();        runnable = new Runnable() {            @Override            public void run() {                handler.postDelayed(runnable, runTime);            }        };        handler.post(runnable);    }    @Override    public IBinder onBind(Intent intent) {        return null;    }    @Override    public void onDestroy() {        if (handler != null) {            handler.removeCallbacks(runnable);        }        super.onDestroy();    }    @Override    public int onStartCommand(Intent intent, int flags, int startId) {        return START_STICKY;    }    @SuppressWarnings("deprecation")    @Override    public void onStart(Intent intent, int startId) {        super.onStart(intent, startId);        Log.i(TAG, "onStart");    }}

Define this Service into Project's Manifest File:

Add below tag in Manifest file:

<service android:enabled="true" android:name="com.my.packagename.MyService" />

Done