我的应用安装,但重启设备未运行时。
我的服务:
package com.example.service_m;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class ServiceCode extends Service{
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//TODO do something useful
for(int i=0;i<=10;i++){
Toast.makeText(getApplicationContext(), "hello world",
Toast.LENGTH_LONG).show();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return Service.START_NOT_STICKY;
}
}
我的BroadcastReceiver:
package com.example.service_m;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class ServiceStarter extends BroadcastReceiver{
@Override
public void onReceive(Context _context, Intent _intent) {
Intent service = new Intent(_context, ServiceCode.class );
_context.startService(service);
}
}
AndroidManifest
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.service_m.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<receiver android:name="com.example.service_m.ServiceStarter" >
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:name="com.example.service_m.ServiceCode.class">
</service>
</application>
我的应用安装但在设备重启时没有运行。 有什么问题? 请帮我! 我想学习制作一个后台应用程序。
答案 0 :(得分:2)
定义服务&amp;清单文件中的权限
<service
android:name="com.example.service_m.ServiceCode">
</service>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在接收器中使用此代码:
Intent service = new Intent(_context, ServiceCode.class );
_context.startService(service);
答案 1 :(得分:0)
问题出在这里
<service
android:name="com.example.service_m.ServiceCode.class">
</service>
我认为它应该在下面(删除.class)
<service
android:name="com.example.service_m.ServiceCode">
</service>
答案 2 :(得分:0)
非常接近,但你错过了几件事:
首先,权限需要在清单中:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
其次,在清单中定义您的服务:
<service
android:name="com.example.service_m.ServiceCode"
android:exported="false"
android:label="ServiceCode" />
您也可能需要在接收器上启用:
android:enabled="true"
最后一件事,尝试使用日志而不是吐司进行调试,通常更有用:)
Log.i("Service Starter", "Hello WOrld");
希望有所帮助。