Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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,我正在创建一个与广播接收器和服务相关的应用程序 我的意图是我的服务从启动开始 为此,我使用广播接收器,并通过它启动我的服务 它会很好的,我的服务课看起来像是休息室 public class Myservice extends Service { public void onCreate() { super.onCreate(); } @Override public void onStart(Intent intent, int st

我正在创建一个与
广播接收器
服务
相关的应用程序

我的意图是我的服务从启动开始

为此,我使用广播接收器,并通过它启动我的服务

它会很好的,我的服务课看起来像是休息室

public class Myservice extends Service 
{
    public void onCreate() 
    {
        super.onCreate();
    }

    @Override
    public void onStart(Intent intent, int startId) 
    {
        super.onStart(intent, startId);

        mScrollback = new Vector<String>();
        Thread thr = new Thread(worker);
        thr.start();        
    }

    Runnable worker = new Runnable() 
    {
         public void run() 
         {
             runLog();
             return;
         }
    };
}
公共类Myservice扩展服务
{
public void onCreate()
{
super.onCreate();
}
@凌驾
公共无效启动(Intent Intent,int startId)
{
super.onStart(intent,startId);
mScrollback=新向量();
螺纹thr=新螺纹(工作螺纹);
thr.start();
}
Runnable worker=new Runnable()
{
公开募捐
{
runLog();
返回;
}
};
}
这是我的服务班,很好用

在我的申请开始之前,我正在获取信息 关于通过此应用程序提供的服务

当我的应用程序运行时,服务没有运行


如果有人有解决方案,请告诉我。

您需要在设备重新启动后授予启动服务的权限。 您可以按以下方式授予权限:

<service android:enabled="true" android:name=".Myservice"  android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

<intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
             <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>

设备重新启动后,您需要授予启动服务的权限。 您可以按以下方式授予权限:

<service android:enabled="true" android:name=".Myservice"  android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

<intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
             <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>

这不是在服务中执行多线程的方式。请看“扩展服务类”步骤:

服务类中的多线程是通过处理程序线程完成的。这是文档中的代码(来自上面的链接)

公共类HelloService扩展服务{
专用活套;
私有服务处理程序mServiceHandler;
//从线程接收消息的处理程序
私有最终类ServiceHandler扩展处理程序{
公共服务处理程序(活套-活套){
超级(活套);
}
@凌驾
公共无效handleMessage(消息消息消息){
//通常我们会在这里做一些工作,比如下载一个文件。
//对于我们的示例,我们只需睡眠5秒钟。
long-endTime=System.currentTimeMillis()+5*1000;
while(System.currentTimeMillis()
此外,您还必须确保您的广播接收器列在清单中,并接收引导\u完成的意图:

<receiver android:name="MyBroadCast">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

这不是在服务中执行多线程的方式。请看“扩展服务类”步骤:

服务类中的多线程是通过处理程序线程完成的。这是文档中的代码(来自上面的链接)

公共类HelloService扩展服务{
专用活套;
私有服务处理程序mServiceHandler;
//从线程接收消息的处理程序
私有最终类ServiceHandler扩展处理程序{
公共服务处理程序(活套-活套){
超级(活套);
}
@凌驾
公共无效handleMessage(消息消息消息){
//通常我们会在这里做一些工作,比如下载一个文件。
//对于我们的示例,我们只需睡眠5秒钟。
long-endTime=System.currentTimeMillis()+5*1000;
while(System.currentTimeMillis()