Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何像系统服务一样永久运行android服务?_Android_Android Service_Real Time Data - Fatal编程技术网

如何像系统服务一样永久运行android服务?

如何像系统服务一样永久运行android服务?,android,android-service,real-time-data,Android,Android Service,Real Time Data,我想在应用程序安装后运行我的Android服务(实时通知服务),并强制它工作,即使应用程序关闭。这个服务负责监听我的实时通知服务器,当收到通知时,我会创建Android通知,如果关闭,可能会运行我的应用程序。我假设我的方式不适合这种情况,还有另一种方式处理实时通知。如果您能提供一些链接或一个小的解释,我将不胜感激。收听我的实时通知服务器的更好方法是,您必须使用GCM。您可以开始阅读有关GCM的内容。如果你想自己实现它,你必须自己编写一个服务。例: public class Listene

我想在应用程序安装后运行我的Android服务(实时通知服务),并强制它工作,即使应用程序关闭。这个服务负责监听我的实时通知服务器,当收到通知时,我会创建Android通知,如果关闭,可能会运行我的应用程序。我假设我的方式不适合这种情况,还有另一种方式处理实时通知。如果您能提供一些链接或一个小的解释,我将不胜感激。

收听我的实时通知服务器的更好方法是,您必须使用GCM。您可以开始阅读有关GCM的内容。如果你想自己实现它,你必须自己编写一个服务。例:

    public class ListenerService extends Service{
     @Override
     public void onStartCommand(Intent intent, int flags, int startId){


       return START_STICKY; //this will restart your service even though the system kills
      }

   // you can write other listener service method inside the service
    }

但我仍然建议您使用GCM或其他云消息服务,而不是编写自己的服务。

在您的类中扩展希望始终在后台运行的Android服务类。重写以下方法并返回START\u STICKY,这将使您的服务始终在后台运行,直到您停止为止

 @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        //your code here
        return START_STICKY;
    }

如果您需要执行任何长时间运行的任务,请为其创建一个单独的线程并在服务内部使用,因为服务在主线程上运行。

如果您希望服务永远运行,请在项目中创建一个服务类,并使用
START\u
返回类型覆盖
onStartCommand()
方法,它将再次启动您的服务,即使您的应用程序因内存不足或其他原因被关闭。如果您希望在设备重新启动时启动服务而不启动应用程序,请在清单中添加
RECEIVE\u BOOT\u COMPLETED
权限。