0

マニフェストでサービスを拡張するクラスを宣言する必要があるかどうかを知りたいだけですか?

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <receiver android:name="com.cherise.readerwidget.MyWidgetProvider" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_info" />
    </receiver>

    <service
        android:name="com.cherise.readerwidget.UpdateWidgetService"
        android:enabled="true"
        android:exported="true" >
    </service>
</application>

このクラスには、HttpConnections を実行する AsyncTask があります。

ポスト実行でウィジェットを更新していないようです。

助けてください

        protected void onPostExecute(String details)
    {
        for(int widgetId : allWidgetIds)
        {
            RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.widget_layout);
            //remoteViews.setTextViewText(R.id.update, news.get(0).getTitle());
            remoteViews.setTextViewText(R.id.update, "Bloemfontein: " + details + " F");

            Intent clickIntent = new Intent(getApplicationContext(), MyWidgetProvider.class);
            clickIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
            clickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds);

            PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
            remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent);
            appWidgetManager.updateAppWidget(widgetId, remoteViews);
        }
        stopSelf();
    }
4

4 に答える 4

1

これを使用する必要があります:

<service android:name=.UpdateWidgetService />

あなたもこれで変わりました。

<service android:name= yourpackegename.UpdateWidgetService  android:enabled="true"/>

サービスが呼び出されたパッケージのフルパスを指定できます...

ありがとう!!

于 2013-09-23T06:58:42.190 に答える
0

はい、マニフェスト ファイルのサービス タグで宣言する必要があります。

于 2013-09-23T06:49:53.533 に答える
0

サービス クラスで onStartCommand の代わりに startCommand を記述したことがわかりました。:D とてもバカ!すべてに感謝

于 2013-09-23T08:42:27.090 に答える
0
    <service
        android:name="UpdateWidgetService"
        android:enabled="true"
        android:exported="true" >
    </service>
于 2013-09-23T06:59:56.270 に答える