【问题标题】:Android widget intentsAndroid 小部件意图
【发布时间】:2010-09-05 15:23:50
【问题描述】:

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

我在 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()的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 个意图表现不同?即注册并启动不同的应用程序。它与一个按钮一起工作,但另一个按钮启动与第一个按钮相同的东西。上周我一直在寻找让它工作,阅读所有内容但没有结果。 我会很感激你的帮助。 谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    嗯,当然。您的所有四个Intents 都是相同的:ACTION_MAINCATEGORY_LAUNCHER,没有其他指定。我很惊讶这 Intent 甚至可以工作。

    因此,让按钮执行不同操作的第一步是实际使用不同的Intents

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

    【讨论】:

    • 请问如何更改我的代码以使意图不同?
    • @John:我不知道你的应用。我不知道正确的 Intent 应该是什么。
    • 我试图有 2 个按钮,每个按钮都有一个隐含的意图,这将启动一个选择器对话框(就像它一样)并让用户为每个按钮选择默认操作。
    • @John:如果通过“选择每个按钮的默认操作”,您指的是出现在选择器对话框上的复选框,与按钮无关。用户正在为使用此Intent 结构(ACTION_MAINCATEGORY_LAUNCHER,未指定任何其他内容)的系统上的任何内容指定默认值。
    • 因此,换句话说,不能存在 2 个隐式意图在一个小部件上做不同的事情。是的,当点击按钮一时,应该让用户选择他们需要启动的应用程序(并将其设置为默认操作),所以按钮二(选择不同的应用程序)我认为我的代码确实包含 2 个挂起的意图,监听 2 个不同的按钮.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2015-07-16
    • 1970-01-01
    相关资源
    最近更新 更多