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()