I want to implement the
startForeground() method in the
Service class for prevent service self kill.
Can anybody sent me code for implementing this method?
Jovan, here is a method for making compatible code for 2.0+ and 1.6- (the code shows you how to detect which one is compatible) http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html
For 2.0+, I put together some example code (using startForeground). Observe that some code is now deprecated, however, Notification.Builder uses API level 11 (3.x) which means I won’t use that until most phones use a compatible Android version. Since the vast majority of phones is now running some version of 2.x, I think it’s safe enough to skip the compatibility check.
final static int myID = 1234; //The intent to launch when the user clicks the expanded notification Intent intent = new Intent(this, SomeActivityToLaunch.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent pendIntent = PendingIntent.getActivity(this, 0, intent, 0); //This constructor is deprecated. Use Notification.Builder instead Notification notice = new Notification(R.drawable.icon_image, "Ticker text", System.currentTimeMillis()); //This method is deprecated. Use Notification.Builder instead. notice.setLatestEventInfo(this, "Title text", "Content text", pendIntent); notice.flags |= Notification.FLAG_NO_CLEAR; startForeground(myID, notice);
put this code within
onStartCommand() of your service and you’re good to go. (But you could put this section of code anywhere in your service.)
P.S. to stop the service from being in foreground simply use
stopForeground(true); anywhere in your service