-1

我有一个小部件类和一个更新小部件的服务类。

我在 onUpdate() 的小部件类中添加了以下代码:

  RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.countdownwidget);
  Intent Intent1 = new Intent(Intent.ACTION_MAIN);
  Intent1.addCategory(Intent.CATEGORY_LAUNCHER);
  PendingIntent pendingIntent1 = PendingIntent.getActivity(context, 0, Intent1, 0);
  views.setOnClickPendingIntent(R.id.button1, pendingIntent);

  Intent Intent2 = new Intent(Intent.ACTION_MAIN);
  Intent2.addCategory(Intent.CATEGORY_LAUNCHER);
  PendingIntent pendingIntent2 = PendingIntent.getActivity(context, 0, Intent2, 0);
  views.setOnClickPendingIntent(R.id.button2, pendingIntent2); 

我还在 onStart() 的小部件服务中添加了以下代码

    Intent Intent1 = new Intent(Intent.ACTION_MAIN);

    Intent1.addCategory(Intent.CATEGORY_LAUNCHER);
    PendingIntent pendingIntent1 = PendingIntent.getActivity(getApplicationContext(), 0, Intent1, 0);
    remoteView.setOnClickPendingIntent(R.id.button1, pendingIntent1);

    Intent Intent2 = new Intent(Intent.ACTION_MAIN);
    Intent2.addCategory(Intent.CATEGORY_LAUNCHER);
    PendingIntent pendingIntent2 = PendingIntent.getActivity(getApplicationContext(), 0, Intent2, 0);
    remoteView.setOnClickPendingIntent(R.id.button2, pendingIntent1);

我遇到的问题是,一旦隐式意图注册应用程序以在 button1 上启动,button2 与 button1 相同。我怎样才能使 2 个意图表现不同?即注册和启动不同的应用程序。它与一个按钮一起工作,但另一个按钮启动与第一个按钮相同的东西。上周我一直在寻找让它工作,阅读所有内容但没有结果。我会很感激你的帮助。谢谢。

4

1 回答 1

0

我遇到的问题是,一旦隐式意图注册应用程序以在 button1 上启动,button2 与 button1 相同。

嗯,当然。您的所有四个Intents都是相同的:ACTION_MAIN, CATEGORY_LAUNCHER,没有指定其他内容。我很惊讶这Intent甚至有效。

所以,让按钮做不同事情的第一步是实际上有不同的Intents.

另外,请不要使用getApplicationContext(). 只需使用this, 因为 aServiceContext.

于 2010-09-05T16:54:55.707 回答