Android 安卓小部件onClick

Android 安卓小部件onClick,android,widget,onclick,Android,Widget,Onclick,我希望能够点击一个小部件并启动一个对话框。我阅读了一些非官方的官方文件。我最初想发起一项新活动,但即使这样也失败了。我在Logcat中得到了以下信息,但我什么也看不见 11-14 21:28:47.929: INFO/ActivityManager(116): Starting: Intent { flg=0x10000000 cmp=com.android.app/.Execute bnds=[179,89][300,160] } from pid -1 我猜上面的意思是意图被通过了。。。但

我希望能够点击一个小部件并启动一个对话框。我阅读了一些非官方的官方文件。我最初想发起一项新活动,但即使这样也失败了。我在Logcat中得到了以下信息,但我什么也看不见

11-14 21:28:47.929: INFO/ActivityManager(116): Starting: Intent { flg=0x10000000 cmp=com.android.app/.Execute bnds=[179,89][300,160] } from pid -1
我猜上面的意思是意图被通过了。。。但活动实际上并没有开始。要启动的活动是否应为正常活动

使用的代码是:

public class ExampleAppWidgetProvider extends AppWidgetProvider {

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    final int N = appWidgetIds.length;

    // Perform this loop procedure for each App Widget that belongs to this provider
    for (int i=0; i<N; i++) {
        int appWidgetId = appWidgetIds[i];

        // Create an Intent to launch ExampleActivity
        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);

        // Tell the AppWidgetManager to perform an update on the current app widget
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }
}
}
公共类示例AppWidgetProvider扩展AppWidgetProvider{
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
final int N=appWidgetIds.length;
//对属于此提供商的每个应用程序小部件执行此循环过程

对于(int i=0;i问题最可能的原因是您没有在清单中声明
ExampleActivity

您还可以尝试为
pendingent
创建的参数2使用一个唯一的数字,并在参数4中放置一个合理的标志:

    PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT );

运气好吗?我也观察到了。我也看到了这一点-当我尝试启动一个活动时,我从我的一个应用程序发出通知。我想这与进程id显示为-1有关。通常,每当通过意图启动其他活动时,进程id不是-1,而是不同的数字由OS签名..我的问题已经解决..pid是-1与此无关..我的实际问题是我的代码中有一个输入错误..我没有输入“XYZActivity”,而是写了“XYZActivity”(注意大写C)因为它被指定为一个字符串,所以Android没有抛出任何错误。也许你的情况也有类似的地方?那么,-1是关于什么的?你是说你想开始的活动拼写错误了吗?我没有看到任何拼写错误。在widget click上启动的活动是如何处理意图的?或者这与fi无关第一个问题-不知道..我想它是分配给通知栏的进程..因为它总是为通过通知栏启动的任何内容打印-1。第二个问题-是的,我拼错了名称。我使用setClassName()给出了名称方法,因为它是字符串,所以没有编译时错误。关于与小部件部分相关的其余问题,我很抱歉,但我对这些问题没有任何想法……(也许一些有知识的人可以帮助您:)我也试过了。没有任何变化。有没有可能尝试执行的活动没有按照预期编码?我的意思是,我需要在要启动的新活动中包含一些特殊的内容吗?好的,你需要处理添加到
挂起内容中的
意图在您的清单中正确定义了
ExampleActivity
,是吗?