I just figured out a slick workaround for this bug. The progress
dialog stuff is clearly hosed so I just brute force it. I do a
setContentView with the resource
R.layout.tellsuserthatworkingisbeingdone, which tells the user to wait
a moment. Then I give the framework 100 mS to update the screen, then
I start work on the real screen. It works like a champ.
I'm willing to package up and post (on b.android.com) a test project
for the progress dialog bug if Romain and Mark agree that it's a bug.
public class MyActivityClass {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
doBuild(savedInstanceState);
}
Bundle SIS;
protected void doBuild( Bundle savedInstanceState ){
setContentView( R.layout.tellsuserthatworkingisbeingdone);
// This line removed ---
showDialog(drawingProgressDialogId);
ScreenBuildRunnable sbRunnable = new
ScreenBuildRunnable();
Handler screenBuildHandler = new Handler();
SIS = savedInstanceState;
screenBuildHandler.postDelayed(sbRunnable, 100); //
Wait 100 mS
for progress dialog to get drawn
}
private class ScreenBuildRunnable implements Runnable {
@Override
public void run() {
LinearLayout topLevelLayout = new
LinearLayout(SpreadsheetActivity.this);
doDraw( SIS , topLevelLayout );
// This line removed
dismissDialog( drawingProgressDialogId );
setContentView(topLevelLayout);
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en