我有一个包含按钮的应用程序小部件。单击按钮后,它会将活动花费一段时间来加载。在加载的活动中,我有两个异步任务,需要几秒钟才能执行。所以,我想要做的是在活动加载时启动进度对话框页面。
由于小部件图标在onUpdate中设置为意图:
public class MyWidget extends AppWidgetProvider {
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
Intent messageIntent = new Intent(context, MyActivity.class);
messageIntent.setAction(ACTION_WIDGET_GROUP);
}
}
没有特定的“onClick”来初始化进度对话框。另外,我还没有进入活动,我正在从小部件启动活动。
如何以及在何处设置窗口小部件中的进度对话框以使其生效?进度对话框是否属于应用程序小部件?
进度对话框不会在活动本身内启动。它确实如此,但它只在活动加载后才开始:
public class HomeActivity扩展了Activity {
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.dashboard);
setupLayout();
callAsynchronousUsers(); // asynchronous call
getData(); // asynchronous call
}
。 。 。 }
感谢任何和所有帮助。
答案 0 :(得分:1)
嗯,你不能这样做,唯一的方法是在中间启动一个透明活动,只显示带有进度条的自定义对话框,然后启动真实活动。但这不是一个优雅的解决方案,实际上很糟糕。
我建议立即打开您的活动并根据您的AsyncTask显示进度条,我认为这是执行此操作的标准方法。这就是AsyncTask的用途,您可以独立于UI执行艰苦的工作,在您的情况下,您将显示带有消息的进度条。