Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序小部件按钮单击无法正常工作_Android_Android Appwidget - Fatal编程技术网

Android应用程序小部件按钮单击无法正常工作

Android应用程序小部件按钮单击无法正常工作,android,android-appwidget,Android,Android Appwidget,我正在制作一个简单的应用程序小部件,当触摸小部件中的按钮时,它会显示一条toast消息。我遇到的问题是,当点击按钮时,祝酒词永远不会出现。事实上,当按下按钮时,onReceive事件永远不会触发。我怀疑这个问题与我的舱单有关,但我觉得没问题 以下是我的舱单的相关部分: <receiver android:name=".GPSWidget" android:label="GPS Receiver"> <intent-filter> &

我正在制作一个简单的应用程序小部件,当触摸小部件中的按钮时,它会显示一条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>
widgetTexts是应该启动toast的按钮,但是就像我说的,当按下按钮时,什么都不会发生。我认为清单中的路径是错误的,luke.app.steal,但同样的路径对我的所有其他活动都适用


有人有什么想法吗?或者需要更多信息?

尽量不要使用onRecieve()widgetprovider处理。在
PendingEvent.getBroadcast(context,0,inte,0)
中,尝试将请求代码(0)的值更改为其他值,该值在你的应用程序中不被任何其他挂起的意图使用。@faizal你刚刚帮我省去了很多挫折!非常感谢你。Android中的小部件最难制作和调试。
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 );
}