2013-01-14 33 views
1

我开发了一个mdm服务器(移动设备管理器)和一个android应用程序。我已经设法连接这两个设备。另外,我写了一个android应用程序,可以在任何android平台上运行。现在,我试图以一种无法在未经我许可的情况下关闭的方式来管理android应用程序。也就是说,android应用程序将从手机开始运行,直到我发送一条命令关闭它自己。如何防止应用程序自己关闭

我不管理我如何做到这一点。如果你知道,你能分享你的知识吗?

回答

2

在Android上不可能有永无止境的应用程序。

每当系统需要更多资源用于当前的前台任务时,它将终止后台进程以释放RAM和CPU。

但是,你可以做以下之一:

返回START_STICKY或使用START_REDELIVER_INTENT服务

在你onStartCommand()为您服务,回报START_STICKYSTART_REDELIVER_INTENT

public int onStartCommand(Intent intent, int flags, int startId) { 
    super.onStartCommand(intent, flags, startId); 
    return START_STICKY; 
} 

使用像GCM这样的推送通知服务仅在需要时触发您的应用程序的启动

这是一个更省电的方法,因为您的应用程序在不需要时不运行。通过集成GCM,您可以通过已经安装在每台Google批准的Android设备(Google Play上的任何设备)上的Google服务向您的应用发送推送通知。当设备收到您的通知时,它会启动并通知您的设备上的应用程序,因此启动它。

+0

这是我最后一个问题。是否有可能更改任务管理器,使其无法关闭? –

+1

@ coler'e任务管理器就像任何其他应用程序一样,所以不需要。 –

+0

作为您的帮助,我从应用层了解到,我无法管理自己的愿望。我会搜索一种方式更改android操作系统,开源,所以实现我的目标 –

2

不可能,您无法阻止用户查杀您的应用程序。 (任务杀手等)

但你可以做的是创建一个服务,并通过startService/stopService启动/停止它。并使其粘性。

Android在资源不足时可以杀死一个服务,STICKY会让服务重新启动。

+0

你能解释更多关于粘性的吗? –

+0

http://developer.android.com/reference/android/app/Service.html – RvdK

1

这是一个众所周知的说法,“预防胜于治疗”,通过这些线我的意思是你应该尝试用try,catch和finally blocks来包含可疑的指令。

应用程序不会自行关闭,除非发生意外的缺陷或错误。因此,请确保您已经附上敏感的程序指令,例如连接,查找设备等,并在finaly块中应用适当的指令。你的程序将根据你的要求工作。谢谢

+0

如果Android需要更多资源用于当前前台进程,那么应用程序可能会被Android终止。 –

+0

@RaghavSood也许这是一个嘲讽的问题。这对我来说很重要资源管理器只要重新启动应用程序就可以终止应用程序。但是,我的问题是如何防止用户可以杀死我的应用程序? –

+0

@ user1965982你不行。 –

相关问题