銀行口座にログインして、口座残高を取得しています。ウィジェットのonUpdateからこの関数を呼び出し、AsyncTaskで実行しています
package com.example.oobe.widget.widgetexample;
public class ExampleAppWidgetProvider extends AppWidgetProvider
{
(...)
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
(...)
if (notFromAsyncTask)
new MyAsyncTask().execute(context);
(...)
}
(...)
}
onPostExecuteメソッドで、onUpdateウィジェットとputExtra文字列を呼び出します。これどうやってするの?
package com.example.oobe.widget.widgetexample;
public class MyAsyncTask extends AsyncTask<Object, Void, BGZ>
{
Context context;
@Override
protected BGZ doInBackground(Object... params)
{
this.context = (Context)params[0];
return GetSomething();
}
protected void onPostExecute(BGZ page)
{
Intent intent = new Intent(context, ExampleAppWidgetProvider.class);
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
intent.putExtra("result", result);
intent.putExtra("webpage", webPage);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
(...)
}
上記のようにすると、エラーが発生します:..明示的なアクティビティクラスが見つかりません。
AsyncTaskからこれを行うことはできますか?paramsを指定してwidget_update(onUpdate)を呼び出して、AsyncTaskからのものであることを認識できますか?サンプルコードを少し教えてください(broadcastreceiverなどである必要がある場合にマニフェストに追加するもの)。
onPostExecuteでウィジェットを更新しましたが、ExampleAppWidgetProviderクラスで更新する方が良い方法だと思いますか?