【问题标题】:How to connect an android widget to my android application? both are my Android applications如何将 android 小部件连接到我的 android 应用程序?两者都是我的 Android 应用程序
【发布时间】:2012-12-05 07:08:42
【问题描述】:

我想将我的小部件和我的一个 android 应用程序结合起来..

有可能吗?

我的计划是,一旦用户打开我的 android 小部件,小部件将直接打开我的 android 应用程序?

有什么办法吗?

我从我的小部件类在这里做了一些方法:

public class ExampleAppWidgetProvider extends AppWidgetProvider {

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
for (int i = 0; i < appWidgetIds.length; i++) {
int appWidgetId = appWidgetIds[i];

Intent intent = startActivity(new Intent("com.xxx.yyy.widget.FlamingoActivity"));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, 0);

RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget1);

views.setOnClickPendingIntent(R.id.Image, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}

我尝试调用第二个应用程序 FlamingoActivity,但它失败了.. :(

不是完整的解决方案:

我应该改变这一行

Intent intent = startActivity(new Intent("com.xxx.yyy.widget.FlamingoActivity"));

到这里:

Intent intent = new Intent(context, FlamingoActivity.class);

【问题讨论】:

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


    【解决方案1】:

    你需要在你的小部件上设置一个 onClickpendingIntent

       Intent intent = new Intent(context, ExampleActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
        // Get the layout for the App Widget and attach an on-click listener to the button
         RemoteViews views = new 
                     RemoteViews(context.getPackageName(),R.layout.appwidget_provider_layout);
          views.setOnClickPendingIntent(R.id.button, pendingIntent);
    

    另见这个问题Launching activity from widget

    【讨论】:

    • tq @rahul 回复!真的很感激,我的错误是这一行 Intent intent = startActivity(new Intent("com.xxx.yyy.widget.FlamingoActivity"));我应该改为: Intent intent = new Intent(context, FlamingoActivity.class);是的,基本概念,我错过了.. :) 谢谢你 Rahul,我从你给我的链接中找到了这个答案! :D 嘿,加我到 facebook..我现在正在寻找 Android 会员.. :) Ibtisam Zahra(猫的照片)
    【解决方案2】:

    您尝试调用的活动需要在其应用的清单中公开(导出)。从小部件启动活动并没有什么特别之处,除了您使用PendingIntent 来允许小部件作为应用程序的一部分工作(它在启动器应用程序内运行)。

    【讨论】:

    • 是的。显然你错过了对setOnClickPendingIntent() 的调用,它实际上触发了它。
    • 是的,我想正因为如此,我在编辑解决方案时尝试更改 Intent 行,结果出现错误。起初,该应用程序运行良好,我可以单击小部件,然后打开包含启动画面的第二个应用程序..然后该应用程序突然停止:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2019-08-01
    • 2014-11-15
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 2014-02-19
    相关资源
    最近更新 更多