私は私が私の目的にそのコードを適応しようとしている、と私はストレートアップのコピーペーストを試してみましたが、このようなthis oneとthis oneにonUpdateが呼び出されることはありません - Androidのウィジェット
として様々なウィジェットチュートリアルを追っています。 私が何をしても、私のウィジェットは更新されません。それがホーム画面に置かれると、テキストは作成されたスタティックテキストのままです。 私はレイアウトに含まれる4つのTextViewsを更新するだけです。
以下のコードは、主にチュートリアルのいずれかからコピーされます。私はonUpdateメソッドをデバッグしようとしましたが、ブレークポイントは決して打撃を受けません。
助けがあれば幸いです。
編集:私は、以前の私の努力で私がしようとしていた。このウィジェットのはるかに単純なバージョンに戻すと、シンプルなウィジェットのコードを以下のコードを置き換えます。 CommonsWareによって提案された変更を私のマニフェストに加えました。残念ながら問題は残っています。
私の主な.javaファイルはそうのようになります。
public class NetStatWidget extends AppWidgetProvider
{
public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds)
{
ComponentName thisWidget = new ComponentName(context, NetStatWidget.class);
int[] widgetId = manager.getAppWidgetIds(thisWidget);
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.appwidget);
remoteView.setTextViewText(R.id.textView0, "Hello");
manager.updateAppWidget(widgetId, remoteView);
}
}
私のマニフェスト:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.stat"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name="NetStatWidget" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/providerinfo" />
</receiver>
</application>
</manifest>
そして、私のウィジェットプロバイダー情報:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/main"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="10000">
私はあなたの提案に従って私のマニフェストを変更し、まだ同じ問題があります。私は努力の始めにやっていた簡単なウィジェットに戻り、同じ変更を加え、同じ問題を抱えています。私は単純なコードを反映する上記のコードを編集しました。同じ問題がありますか? – Jodron
@ Jodron:いいえ、あなたがAndroid 3.0以降で動作する必要があります。 Android 3.1以上では、あなたのアプリウィジェットに付随するアクティビティが必要です。あなたのアプリウィジェットは、ユーザがアクティビティを実行するまでブロードキャストを受信しません。このディレクトリには別の2つのアプリウィジェットサンプルが含まれています。どちらも動作します:https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget – CommonsWare
これは単なる変です。私は2.3でそれを実行していますが、それでもテキストは更新されません。ウィジェットが配置されるとすぐに "textView0"は "Hello"と読み替えるべきだと私は間違っていますか? 例をありがとう、私はそれを把握することはできませんそれらを見て、私はそれを見ていない。私は私の頭の上にあるかもしれないと思うし、それを通常のアプリにする必要があります。 – Jodron