1

我正在实现在服务内启动应用程序的意图。当我传递其他应用程序包名称时它工作正常,但是当我调用实现意图的相同包名称时它显示异常。它显示为“您是否已宣布它为清单?”。它已经在清单中声明。

Intent nextIntent = new Intent(Intent.ACTION_MAIN);
nextIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
nextIntent.setComponent(new ComponentName("com.example.app1","com.example.app1.MainActivity"));
startActivity(nextIntent);

如果我替换包名,它工作正常。怎么做?

4

1 回答 1

1

以标准方式开始活动:

Intent nextIntent = new Intent(context_reference, MainActivity.class);
nextIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
nextIntent.setAction(Intent.ACTION_MAIN);
startActivity(nextIntent);

如果你传递字符串,那么在重构的情况下你会被搞砸 - 如果你忘记修改字符串。

于 2013-10-30T07:24:03.020 回答