在包com.example.project.packageA中,我有一个类,它扩展了JobIntentService,定义如下:
public class MyService extends JobIntentService {
static final int JOB_ID = 1000;
static final String TAG =MyService.class.getSimpleName();
public static void enqueueWork(Context context, Intent work) {
enqueueWork(context, MyService.class, JOB_ID, work);
}
@Override
public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
}
/**
* We have received work to do. The system or framework is already
* holding a wake lock for us at this point, so we can just go.
*/
@Override
protected void onHandleWork(Intent intent) {
Log.i(TAG, "Started onHandleWork");
String value = intent.getExtras().getString("Key");
Log.i(TAG, value);
}
在另一个包中: com.example.project.packageB; 我想调用这个服务在后台启动,所以我这样做:
Intent it = new Intent();
it.setComponent(new ComponentName("com.example.project", "com.example.project.packageA.MyService"));
it.putExtra("Key", "Value");
MyService.enqueueWork(context, it);
Log.d(TAG, "Call successful");
我在清单文件中也包含了以下权限:
<service
android:name="com.example.project.MyService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true"/>
然而,当我运行程序时,它似乎并没有启动服务。我可以看到日志信息“调用成功”,但是我无法看到来自onHandleWork函数的日志信息。我是否以错误的方式启动了服务?