Android小部件意图

时间:2010-09-05 15:23:50

标签: java android widget android-intent android-pendingintent

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

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

  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()

的widget服务中添加了以下代码
    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个意图表现不同?即注册和启动不同的应用程序。它使用一个按钮,但另一个按钮启动第一个按钮相同的东西。我一直在寻找让这个工作在上一周,阅读的东西,但没有结果。 我很感激你的帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

  

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

嗯,当然。您Intents的所有四个都是相同的:ACTION_MAINCATEGORY_LAUNCHER,没有指定任何其他内容。我很惊讶Intent即使有效。

因此,让按钮做不同事情的第一步是实际上有不同的Intents

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