Android App Widget按钮单击无法正常工作

时间:2012-05-10 12:49:01

标签: android android-appwidget

我正在创建一个简单的应用小部件,当触摸小部件中的按钮时,该小部件会显示Toast消息。我遇到的问题是,单击按钮时,toast永远不会出现。事实上,触摸按钮时,onReceive事件永远不会被触发。我怀疑这个问题与我的清单有关,但它看起来还不错。

以下是我的清单的相关部分:

<receiver android:name=".GPSWidget" android:label="GPS Receiver">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name="luke.app.steal.GPSWidget.ACTION_WIDGET_RECEIVER"/>
        </intent-filter>
        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_provider" />
</receiver>

以下是将按钮“连接”到事件监听器的代码,以及名为GPSReceiver的类中的onReceive事件。

public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";


@Override
public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
        Toast.makeText(context, "Button hit", Toast.LENGTH_SHORT).show();
    }
    super.onReceive(context, intent);
}

@Override
public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )
{
        RemoteViews remoteViews;

        remoteViews = new RemoteViews( context.getPackageName(), R.layout.gpswidget );
        remoteViews.setTextViewText( R.id.widgetTexts, "Click Me!");

        Intent inte = new Intent(context, lukeService.class);
        inte.setAction(ACTION_WIDGET_RECEIVER);

        PendingIntent configPendingIntent = PendingIntent.getBroadcast(context, 0, inte, 0);

        remoteViews.setOnClickPendingIntent(R.id.widgetTexts, configPendingIntent);
        appWidgetManager.updateAppWidget(appWidgetIds, remoteViews );
}

widgetTexts是应该启动toast的按钮,但就像我说按钮被击中时没有任何反应。我认为清单中的路径是错误的,luke.app.steal,但是同样的路径对我所有的其他活动都很好。

有人有任何想法吗?或需要更多信息?

0 个答案:

没有答案