我需要从Android小部件开始使用android>服务5.0,但此服务已实现到另一个项目中。
如果我使用的是设备,请使用android< 4.4此代码工作:
Intent intent = new Intent("com.service.example");
startService(intent);
我读过这篇文章: Service Must be explicit: Intent
和解决方案应该是:
Intent serviceIntent = new Intent(context,MyService.class);
context.startService(serviceIntent);
那么,如何在不导入服务类的情况下启动服务(使用intent)?
答案 0 :(得分:3)
您需要实际setComponent
在另一个应用程序中启动服务。例如,
com.xyz.app1中的活动:
Intent mServiceIntent = new Intent();
String pkg = "com.xyz.app2";
String cls = "com.xyz.app2.MyService";
mServiceIntent.setComponent(new ComponentName(pkg, cls));
startService(mServiceIntent);
如果要指定特定组件,则不需要设置ACTION或CATEGORY。确保在清单中正确定义了您的服务。
答案 1 :(得分:0)
您可以使用组件名称:
Intent intent = new Intent(YOUR_ACTION_HERE);
intent.setComponent(new ComponentName("your.package.name",
"your.package.name.YourService"));
statService(intent);