śledzę różne Widget Poradniki takich jak this one i this oneonUpdate nie zadzwonił - Android Widget
Próbowałem dostosowania ich kodu do moich celów, i próbowałem prosto-up Kopiuj Wklej. Wygląda na to, że bez względu na to, co robię, mój widget NIGDY nie zostanie zaktualizowany. Po umieszczeniu na ekranie głównym tekst pozostaje jako tekst statyczny, w którym został utworzony. Wszystko, czego potrzebuję ta aplikacja to aktualizacja 4 TextView, które będą zawarte w układzie.
Poniższy kod jest głównie kopiowany z jednego z samouczków. Próbowałem debugowania metody onUpdate, jednak punkt przerwania nigdy nie wydaje się być trafiony.
Każda pomoc byłaby WSPANIAŁA doceniona.
EDYCJA: Powróciłem do znacznie prostszej wersji tego widżetu, którą próbowałem wcześniej w moich wysiłkach i zastąpiłem poniższy kod kodem dla prostszego widżetu. Wprowadziłem zmiany sugerowane przez CommonsWare do mojego manifestu. Niestety problem pozostaje.
Główny plik .java wygląda tak:
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);
}
}
My Oczywisty:
<?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>
A moja Widget Provider Info:
<?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">
Zmieniłem manifest na podstawie Twojej sugestii i nadal mam ten sam problem ...Powróciłem do prostszego widżetu, którego próbowałem na początku moich wysiłków, dokonałem tej samej zmiany i mam ten sam problem. Edytowałem kod powyżej odzwierciedlający prostszy kod. Czy widzisz ten sam problem? – Jodron
@Jodron: Nie, to, co tam masz, powinno działać na Androidzie 3.0 i starszym. Android 3.1 lub nowszy, potrzebujesz aktywności, aby przejść do widżetu aplikacji - widżet aplikacji nie będzie odbierać żadnych transmisji, dopóki użytkownik nie uruchomi działania. Ten katalog zawiera dwa kolejne widżety aplikacji, które działają: https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget – CommonsWare
To jest po prostu dziwne. Im uruchomiony na 2.3, i nadal nie będzie aktualizować tekst. Czy myliłem się myśląc, że jak tylko widget zostanie umieszczony "textView0" powinien przeczytać "Hello"? Dzięki za przykłady, przejrzę te i zobaczę, czy nie mogę tego rozgryźć. Myślę, że mógłbym przejechać mi przez głowę i powinien to zrobić zwykłą aplikacją. – Jodron