Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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_Service - Fatal编程技术网

为什么每次我在Android上关闭应用程序时,我的服务都会停止?

为什么每次我在Android上关闭应用程序时,我的服务都会停止?,android,service,Android,Service,我正在用Android编写一个示例服务,以检查关闭应用程序后服务是否停止。但在onStartCommand中,我将START\u NOT\u STICKY作为返回类型,以避免自动重新启动服务 MyCode: MainActivity.java package com.example.sampleintentservice; import android.os.Bundle; import android.app.Activity; import android.content.Intent;

我正在用Android编写一个示例服务,以检查关闭应用程序后服务是否停止。但在onStartCommand中,我将START\u NOT\u STICKY作为返回类型,以避免自动重新启动服务

MyCode:

MainActivity.java

package com.example.sampleintentservice;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     Intent i = new Intent(MainActivity.this, TestService.class);

     MainActivity.this.startService(i);    

} }
TestService.java

package com.example.sampleintentservice;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class TestService extends Service
{

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

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

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) { 

        return START_NOT_STICKY;

    }

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

这是我上面的代码,我不明白当我关闭我的应用程序时,服务正在停止。请帮助我,请给我建议一些解决方案。

结帐
startForeground()


顺便问一下,你怎么知道服务停止了?根据您的描述,这种情况不应发生

“注意:服务在其宿主进程的主线程中运行,服务不会创建自己的线程,也不会在单独的进程中运行(除非您另有指定)。这意味着,如果您的服务要执行任何CPU密集型工作或阻塞操作(如MP3播放或网络),您应该在服务中创建一个新线程来完成该工作。通过使用单独的线程,您将降低应用程序无响应(ANR)错误的风险,并且应用程序的主线程可以专用于用户与您的活动的交互。”^^From:你能建议我如何在我的服务中使用线程吗?点击链接,阅读并决定什么最适合你。你说的“当我关闭我的应用程序时”是什么意思?是指当你完成()启动服务的活动时?