Android :: Creating An Android Service That Cannot Be Killed
Sep 10, 2010
I am trying to write an app that cannot be killed by a user or another application. I understand this goes against what Android has designed for its platform, this is more of a proof of concept. The plan is two have two apps, app1 and app2. When app1 starts it will start app2 and then bind onto app2, when app2 starts it will make sure app1 is started if not, then start it and bind onto app1. The point of app1 binding on app2 and app2 binding on app1 is so when one of them gets killed a method will be called that the binding has been disconnected and the app can then be restarted. I currently have the apps starting each other when they start up but I cannot seem to get them to restart when I force close one of them.
For App1 service I have and app2 very similar:
CODE:..............
And for my class that implements ServiceConnection I have:
CODE:............
I think the issue I am having is that onServiceDisconnected never gets called when app1 or app2 is killed. I think this may be because I am not correctly binding to a service.
W/JavaBinder( 884): ibinderForJavaObject: 0x436274a0 is not a Binder object
W/JavaBinder( 891): ibinderForJavaObject: 0x43621d30 is not a Binder object
How can I bind services together so when one gets force closed that I will get a notice on the other?
View 2 Replies
Jun 29, 2010
I have a service in my app the creates an alarm and runs a check ever X minutes. I am new to android and I was wondering is there a way to prevent another app such as ATK (advanced task killer) from kill my service/alarms? It seems that if I normally close the app my alarms still work but when I go to ATK and stop the app the service dies as well. Maybe thats the point, but this service is rather important and most users would want it to run even if the app itself is no longer running. I assume that if the system kills it for whatever reason then their is nothing you can do about it. Could someone please inform me on this issue and a possible solution to do what I need?
View 3 Replies
View Related
Jun 10, 2010
I have a service running in the background. It starts on device boot. Also, I have one activity (that appears in the task launcher) in which I have provided buttons to start and stop the service.
Now, I install the application on the phone and I start the service using this activity (and not on-device boot). As expected the service starts and starts doing its designated task. I no-longer need the activity. So it goes out of sight and may not be required for a long time now.
My question is, now, if the android platform kills this activity, will it kill my service too ? (This is because I see that after few hours, my service is not running anymore.). If this is true, then will the service continue running longer if the service was started on device boot.
View 11 Replies
View Related
Jul 25, 2009
I have a service that needs to hold a persistent TCP connection, think IM. I'm reluctant to use setForeground() - the service being down temporarily isn't that big a deal, and I am assume I can trust that I'll be run again once memory is available, correct? The problem here is this. The service was started via startService() before being killed. However, when it is restarted, only onCreate() is executed. This makes it hard to continue, because starting work onCreate() means I can't even bind to the service (to say query it's status) without it doing so. Is this a bug or per design? What is the status of the service after it is being restarted? Is it consider "started" by the system, i.e. waiting for a call to stopService()?
View 2 Replies
View Related
May 7, 2010
It is very important that my service stay running until someone with a password stops the service from my UI screen. My app runs great but it is designed to be turned on/off by parents (with a password) on their kids phones. I have managed to make everything work but the problem I'm having is that if the kid uses a task manager to kill my service then my app is useless. I would be grateful to anyone who knows a way to either
1) monitor the service and start it back up automatically if its "killed"
or
2) prevent someone from being able to kill it except from the activity (administration screen) that launched the service. Or both?
View 2 Replies
View Related
Aug 25, 2009
I have a service that polls for data. To indicate this to the user I have a persistent notification in the statusbar. In some cases when the device goes low on memory it destroys the service but OnDestroy is not called. Later when there is available memory OnCreate is called. Is this normal behavior? I had hoped that OnDestroy would be called to I could remove the notification in the statusbar. Now the user thinks that the service is still running, while it has been stopped by the OS.
In order to restart the polling how do I know that the OnCreate is really a restart event and not first time creation of the service? I thought about checking for the presence of the notification in the statusbar, but I couldn't find a API to check if a notification was showing or not. I have not tried "SetForeground" on the service, since the service isn't that important to the user, but maybe that would minimize the problem.
View 4 Replies
View Related
Sep 5, 2010
I have an app widget that uses a Service to handle updates (as per the SDK sample). If a task killer kills the service, the widget obviously stops updating. Is there any way I can notify the widget that the service has been killed so it can attempt to restart it?
View 3 Replies
View Related
Aug 29, 2010
I just want to know how detect that the activity or service has been killed by the advanced task killer? I was expecting the onDestroy method to be called, but it doesnt!
My app starts the background service on boot. The activity is not started except from menu. But its name appears in the advanced task killer list. When I try to kill it, it doesnt call the onDestroy method neither the service's.
View 1 Replies
View Related
Oct 4, 2010
Is there a way to notify an activity/service of a force-close request right before it gets killed?
I mean when the user hits the force close button in Menu>Settings>Applications>Manage applications>app name>Force Close.
View 2 Replies
View Related
Nov 10, 2010
I have an Android service that's responsible for firing notifications at certain points in time. I use an android.OS.CountdownTimer for this. An activity creates and starts the service. If the phone is locked, notifications that are within let's say 1min are shown. Notifications that are much later are never shown. The service is unbound from the activity when the activity is onpause.
As long as the phone doesn't lock the notifications are generated, even if the activity is stopped and unbound from the service.
It seems to me that the service is stopped/killed. When I make the application debuggable and debug it on target, it works fine, also when the activity is stopped and the service is unbound.
The app is developed for v1.5 and runs at Galaxy S with 2.2.
Service is started as shown below
CODE:.................
View 1 Replies
View Related
Feb 3, 2009
How to create an Android service (that uses IPC) using eclipse?
View 2 Replies
View Related
Aug 4, 2010
How do I start a project wherein I can design an application which fetches weather forecasts from existing web sites?
View 1 Replies
View Related
Aug 10, 2010
Recently, I installed FRG01B. I had no problems with it except for the fact that I couldn't get the phone to mute.
I noticed that there was a really cool version of FRG22 out by Liquid Frozen Yogurt 1.3 (FRG22).
I downloaded RSD Lite, SPRecovery_ESE81.sbf, and I downloaded the 64 bit drivers for the Droid. I am using Windows 7 Ultimate Edition 64bit. I got the files from this page: FRG01B.SBF for Droid courtesy of RootzWiki - Droid Releases - AllDroid Public Board - FRG01B.SBF for Droid courtesy of RootzWiki - Droid Releases - AllDroid Public Board - AllDroid.org > Home
Anyway, I installed RSD Lite and the drivers. I opened RSD Lite and opened the SPRecovery_ESE81.sbf file. I clicked show device, but nothing was showing up in the window, but below it said connected. I clicked START. After my phone rebooted, it's shot. No service, no battery life, and it keeps rebooting itself. What can I do! Someone please help! My Gmail address is chim777@gmail.com and I will be available for chat as well. I will keep checking this thread every few minutes. Someone please help as I have no clue what the hell I did. All I wanted to do was root my phone.
View 10 Replies
View Related
Apr 6, 2010
I want to create a service in Android which will initially ask user if he/she wants to start blue-tooth and set the blue-tooth discovery.
My questions are
1) Can i launch in the service following activities? if
CODE:.............
2) I want to set discoverabilty of the phone on for lifetime of application. is it possible??
3) I want to access empty space available on sd card. How should i do it??
View 2 Replies
View Related
Aug 2, 2010
Whenever the memory needs to be reclaimed, the process is being killed by Activity Manager Service in killPidsForProcess. I have a back button in my activity window on right corner of the title bar.
I want to kill the activity completely on clicking the close button. Can I reuse the same function and will it have any major effect? Please help me out in this.
View 3 Replies
View Related
May 22, 2009
I want to show a view on calling a Service API. Currently the only way looks like using the Toast class.
I tried the following after getting the WindowManager service, but it crashes at addView. I looked into the Toast class and found that it uses WindowManagerImpl which is not accessible publicly - is there any way to access the WindowManagerImpl functionality?
CODE:.................
View 4 Replies
View Related
Nov 10, 2010
I'm developing an Android application that consists of:
a lightweight background service that logs events to a DB
a heavier GUI application that summarizes these events and displays graphs.
I'm having trouble creating the service part, though. The graphic application can use quite some RAM, and when it goes to the background, the OS closes it after some time of not being used.
The problem is, when the application gets shut down, so does the service. This is bad because this keeps me from recording further events. I don't care if the application gets terminated, but the service needs to keep on running.
I have tried numerous ways to keep the service alive, like having it use threads or a differently named process than the main app. Nothing has worked, and I have found no help on any of the android developer pages or forums.
View 3 Replies
View Related
Sep 16, 2009
The app widget documentation indicates that the "widget provider"being a receiver of a broadcast service may not exist (the process) beyond the completion of the call.If I want to maintain state between two broadcast events, such as say widgetProvider.onUpdate(), can I start a local service and leave it hanging there until my widgets are disabled? If I didn't explicitly stop that service will it be loaded again and resumed when the device wakes up.
View 4 Replies
View Related
Apr 27, 2009
I've got a problem with a flood of touch events destroying my game's framerate while there is a touch active. Basically onTouchEvent is called (with getAction = ACTION_MOVE, x = 0 and y = 0) about a hundred times a second for as long as the finger is touching the screen. I've tried returning from onTouchEvent straight away, and even removing its implementation at all, but it doesn't help - the app slows to a crawl as soon as a finger is down. I asked on the IRC channel and Romain Guy advised me that they're aware of the problem but didn't have time to fix it for Cupcake, so I'm not expecting a full solution!
View 3 Replies
View Related
Dec 8, 2009
I created application with name Test, and has a class that extends broadcastreceiver that listen for PACKAGE_RESTARTED. I use Advanced Task Killer, and killed the Test application. But when I kill another application, for example gmail, the Test's broadcastreceiver got the intent (I logged it). Does it means that broadcastreceiver will never died?
View 4 Replies
View Related
Sep 10, 2010
I have an application with many forms implemented as separate activities. The form variables are dynamically built based on a database, and there are a ton of variables in the C++ side of the application (accessed via JNI). I don't see how saving out all of this data to persistent storage each time the onPause() or the onSaveInstanceState() of one of these many activities goes into the background is a smart use of processor time. And I don't see how even if I save the local variables for each activity during that time I'd be able to restore a single activity within the context of all the others.
I have set up a service that auto saves the files when I detect that the app has gone into the background. (I set a time stamp when onPause() is called in any activity and then clear the time stamp when onResume() is called on any other activity. If the time elapsed is more than a few seconds, I know I'm not the top activity any longer and the service saves the files).
What I'd like to do is continue on as normal unless the OS kills one of my activities. Since we don't always get notified of this, I thought it would be nice if there were a way to tell the OS that I'd rather you kill the whole app than just one activity.
View 1 Replies
View Related
Jul 29, 2010
On Froyo, we found that some new "Task Manager" apps are now using the ActivityManager.killBackgroundProcesses() to kill apps. When this happens, Intent.ACTION_PACKAGE_RESTARTED is no longer fired. How can I find out that my application has been killed? I tried to start a service, and I do see this message printed in logcat:
W/ActivityManager( 2426): Scheduling restart of crashed service com.example.android.apis/.app.RemoteService in 20000ms
However, the service is never restarted as advertised, if the app is killed using the killBackgroundProcesses API. (If I go into adb shell and kill the service process, the service will indeed be restarted ...) This looks like a bug anyway, because the notification created by the app is no longer removed like in eclair (the StatusBarService, and a bunch of other system services, depend on the Intent.ACTION_PACKAGE_RESTARTED broadcast).
View 14 Replies
View Related
Mar 1, 2009
As is mentioned above,What i'm trying is to protect a sub- thread,and keep it going on as long as the App that starts it is still alive.In other words,If the system need more resources,Let it kill both the App main thread and the sub-thread started from it,Instead of just kill the sub-thread.Is there any way i can do this ?? And another question here,The android system seems to be "rude",As it killed my thread without telling me,even in the logs,Is this the case?
View 6 Replies
View Related
Apr 9, 2009
I can see on OMAP zoom2 platform, the moment screen timeout happens my application is getting terminated. I have a Google map based LBS application which is running on Zoom. I have implemented the interfaces given in gps.h to libhardware_legacy/gps.cpp .
GPS application talks to android framework and Framework talks to libhardware to get the GPS info. Now I can see that the moment screen timeout happens and the display goes off, my application killed. Actually from the framework the stop interface (hgps_stop() ) gets called on screen timeout.
I am wondring why this is happening, as I am not sending any stop request form my GPS application to the libhardware.
Is it something related to Android power manager, that android Power manager does not know about my application is running?
View 2 Replies
View Related
Sep 14, 2010
I have an application and I would like to be able to restart it on the event of an error or a crash/app shutdown. I am familiar with how to register BroadcastReceivers, use alarms, etc.
Is there any signal I could intercept that the app sends out when it shuts down? Or that the OS sends out when any app shuts down?
View 2 Replies
View Related
Apr 9, 2009
After long running the Media|Player (audio mode) the app I'm developing often crashes w/ the following error: > Process android.process.media (pid 14795) has died. > Killing <my app> because provider com.android.providers.media.MediaProvider is in dying process android.process.media
View 3 Replies
View Related
Mar 25, 2010
Currently my application is configured to always receive the CONNECTIVITY_CHANGED action to force an update if the previous update failed because there was no connectivity. What I don't like about this is that the broadcast receiver gets to be called too many times although it is not needed. I was thinking to register my broadcast receiver only if an update failed using the Context.registerReceiver(BroadcastReceiver receiver, IntentFilter filter) method. But I'm not so sure if this is a good idea. I'm concerned that if my application is evicted from memory the broadcast receiver will be unregistered or lost and my application will not be notified about the future CONNECTIVITY_CHANGED actions. The update is done in a short lived service. So if the update fails, the service will register the broadcast receiver just before it ends its execution time. Can somebody explain what happens to my broadcast receiver after the application is evicted from memory?
View 4 Replies
View Related
Apr 5, 2010
I am working on a MVC implementation for Android (to be subsequently hosted on SF and/or GC).
It works like this:
Activity (View) <=> Application (Controller) <=> Data (Model) <=> Persistence (DB/Network etc)
The scenario is:
1. Activity launch (main/launcher)
2. Notifies Application about performing a data transaction
3. Upon receipt of data response, controller devices which Activity to launch (or update existing)
4. Application has overridden the method onConfigurationChange
Problem: When the orientation is changed, the Application is notified about onConfigurationChange but:
a) The "current" activity is Destroyed and recreated -- which is fine to some extent b) The new instance which is created is automatically => onCreate, onPause, onStop, onDestroy.... now that's catastrophic.
View 4 Replies
View Related
Nov 25, 2009
I have an app that listens to incoming Calls. If the user has another app that listens to the same (Call popup applications in specific) my process is getting killed - any solutions or ideas on how to prevent this ?
View 2 Replies
View Related
Aug 10, 2010
With the new Froyo update, my app is being killed instead of running in the background. Is there anything I can do to stop this?
View 1 Replies
View Related