我正在登录银行帐户并获取帐户余额。我从小部件中的 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 执行此操作吗?我可以使用参数调用 widget_update (onUpdate) 来识别来自我的 AsyncTask 吗?请给我一些示例代码(如果必须是广播接收器等要添加到清单中的内容)。
我在 onPostExecute 中更新了小部件,但我认为更好的方法是在 ExampleAppWidgetProvider 类中执行此操作?