没有导入类

时间:2016-03-07 16:07:12

标签: android android-studio

我需要从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)?

2 个答案:

答案 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);