Android Java – 为什么在60秒后关闭服务器

huangapple go评论72阅读模式
英文:

Android Java - Why kill server after 60

问题

为什么在Android中的60秒后系统会终止服务器?

服务是否能够始终在系统的干扰下工作?

该问题在新的Android版本中出现。

所使用的代码:

是否有解决此错误的方法?

public class MyService extends Service {

    @Override
    public IBinder onBind(Intent intent)
    {
        return null;
    }

    @Override
    public void onCreate()
    {

    }


    @Override
    public int onStartCommand(Intent intent, int flags, int startId)
    {
        String data = intent.getExtras().getString("LCD1");
        return START_STICKY;
    }



    @Override
    public void onDestroy()
    {
        super.onDestroy();
    }


}



<service
    android:name=".MyService"
    android:label="Test"
    android:exported="true">

    <intent-filter >
        <action android:name="com.mhm.servertest.MyService" />
    </intent-filter>
</service>
英文:

Why kills server by system after 60 in Android

Can the service always work without interruption by the system?

The problem appears in new Android releases

The code used

Is there any solution to the error

    public class MyService extends Service {
    
        @Override
        public IBinder onBind(Intent intent)
        {
            return  null;
        }
    
        @Override
        public void onCreate()
        {
    
        }
    
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId)
        {
            String data = intent.getExtras().getString(&quot;LCD1&quot;);
            return START_STICKY;
        }
    
    
    
        @Override
        public void onDestroy()
        {
            super.onDestroy();
        }
    
  
    }
    
    
    
    &lt;service
        android:name=&quot;.MyService&quot;
        android:label=&quot;Test&quot;
        android:exported=&quot;true&quot;&gt;
    
        &lt;intent-filter &gt;
            &lt;action android:name=&quot;com.mhm.servertest.MyService&quot; /&gt;
        &lt;/intent-filter&gt;
    &lt;/service&gt;

答案1

得分: 1

这对于长期运行的服务,您在实现Android中的长期运行服务之前应该考虑几件事情,比如:

  1. Doze模式,在此模式下,Android操作系统掌管后台服务的执行时间。
  2. 参考这个答案以更好地了解带有内存和CPU处理的服务的工作原理。
  3. 可以使用WorkManager来执行并发作业。
  4. 您应该在清单xml中添加android:stopWithTask="false",以便在任务清除时继续服务运行。
英文:

This for long runnig service, Your should consider several things before implementing long running Service in Android like

  1. Doze mode in which Android OS takes charge of background services execution time.
  2. Refer this answer to understand better working of service with memory and CPU processing.
  3. Workmanager can be used to do concurrent job
  4. You should add android:stopWithTask="false" in manifest xml.

huangapple
  • 本文由 发表于 2020年8月23日 17:11:40
  • 转载请务必保留本文链接:https://go.coder-hub.com/63545253.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定