2011-12-14 37 views
0

我有一个包含按钮的应用程序窗口小部件。一旦我点击这个按钮,它就需要一段时间才能加载。在加载的活动中,我有两个异步任务,需要几秒钟才能执行。所以,我想要做的是在加载活动时启动进度对话框页面。从应用程序窗口小部件启动进度对话框

由于Widget图标被设置为意图在的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); 
    } 
} 

有没有具体的“点击”初始化进度对话框。另外,我还没有参与这个活动,我正在从小部件中启动活动。

如何以及在哪里设置窗口小部件中的进度对话框以使其工作?进度对话框是否属于应用程序小部件?

进度对话框不会在活动本身内启动。那么这样做,但它只能在活动加载后开始:

公共类HomeActivity延伸活动{

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.dashboard); 
    setupLayout(); 
    callAsynchronousUsers(); // asynchronous call 
     getData(); // asynchronous call 
    } 

。 。 。 }

任何和所有的帮助表示赞赏。

回答

1

那么,你不能那样做,唯一的方法是在中间启动一个透明的活动,只显示一个带进度条的自定义对话框,然后启动真实的活动。但不是一个优雅的解决方案,实际上它很糟糕。

我建议您立即打开您的活动,并根据您的AsyncTask显示进度条,我认为这是执行此操作的标准方法。这就是AsyncTask的用途,你可以从UI中独立执行努力工作,在你的情况下,你会显示一个消息进度条。

+0

我试过你的第二种方法,但对话框(“现在加载”)只能保持1/2秒的打开状态,而从小部件本身启动的活动需要几秒钟的时间。我将该对话框添加到从活动调用的第一个方法。以前没有办法启动吗? (除了你的第一个建议)? – user836200 2011-12-14 20:38:38

相关问题