检查启动时启动的IntentService是否仍在运行

时间:2014-07-30 00:31:31

标签: java android

进入清单:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

进入申请表:

<service android:name="Myservice"/>
<receiver android:name="com.myapp.Onstart">  <!-- Tested also only .Onstart -->
            <intent-filter>  
                <action android:name="android.intent.action.BOOT_COMPLETED" />  
            </intent-filter>  
</receiver>

Onstart.java:

package com.myapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;


public class Onstart extends BroadcastReceiver {    

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){
            context.startService(new Intent(context, Myservice.class));
        }
    }
}

Myservice.java:

package com.myapp;

import android.app.IntentService;
import android.content.Intent;
import android.util.Log;

public class Myservice extends IntentService
{

    public Myservice() {
        super("Myservice");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        int n=0;
        while(true)
        {
            if (i==20) {
               stopSelf();
            }
            i = i++;
            Log.i("Test", "n."+n++);
            try {
                Thread.sleep(10000);
            }
            catch (InterruptedException e)
            { }
        }
    }

}

手动启动应用程序显示在Main.java中,如果我的IntentService Myservice仍在运行,我想知道(在Main.java中)。怎么做?

1 个答案:

答案 0 :(得分:1)

虽然我知道你的问题是它是否正在运行,但我不明白为什么你需要知道。因为IntentService按需工作。

  

IntentService是处理异步的Services的基类   请求(表示为Intents)。客户端发送请求   通过startService(Intent)调用;该服务根据需要启动,   使用工作线程依次处理每个Intent,并自行停止   当它用完了。

另外,从Context.startService(Intent)调用doc:

  

如果服务正在启动或已在运行,则   返回已启动的实际服务的ComponentName;其他   如果服务不存在则返回null。

如果必须,可以检查startService(Intent)返回参数。

编辑:您似乎只需要由您而非系统处理启动服务。这将允许您拥有自己的停止条件。有关如何使用它们,请参阅ServicesServices Guide

参考文献:
IntentService
startService(Intent service)
Services
Services Guide