我在Eclipse中的2个不同的应用程序项目中有2个不同的应用程序。我将它们称为H和G.到现在为止,我已经能够通过使用
从G启动H.Intent intent = getPackageManager().getLaunchIntentForPackage("com.xxx.h");
startActivity(intent);
这一直很好用,但实际上,我并不需要启动H应用程序,我只需要在后台运行该应用程序,所以我开始研究服务。所以现在我正在尝试使用
Intent intent = new Intent();
intent.setClassName("com.xxx.h","com.xxx.h.MyService");
startService(intent);
但现在我收到的错误是
W / ActivityManager(1044):无法启动服务Intent {cmp = com.xxx.h / .MyService} U = 0:未找到
对服务甚至意图都很陌生,所以我猜这是我想念的简单事情,希望你们可以提供帮助。
修改
我修正了问题,就是说我无法启动服务意图。这是通过包括
来解决的service android:name=".MyService"
到H.的AndoirdManifest.xml。现在我得到了
E / AndroidRuntime(1022):java.lang.IllegalStateException:无法执行活动的方法
编辑2
发现它没有让我在未经许可的情况下启动所以我必须在AndroidManifest.xml中包含android:exported =“true”
答案 0 :(得分:0)
试试这个:
private void startService(String aServiceName) {
if (aServiceName.trim().length() > 0) {
try {
Context ctx = getApplicationContext();
Intent iServiceIntent = this.ctx.getPackageManager().getLaunchIntentForPackage(aServiceName);
ctx.startActivity(iServiceIntent);
Thread.sleep(800);
} catch (Exception e) {
}
}
}
答案 1 :(得分:0)
无法启动服务的最初问题是因为我没有将<service>
包含在修复该问题的AndroidManifest.xml中,然后无法执行错误是由权限问题引起的。总而言之,解决我的问题所需的全部内容包括
<service
android:name=".MyServiceHomework"
android:exported="true"
/>
到我的H(服务)项目的AndroidManifest.xml