You might also want to consider moving the countdown out to a
service.  That would allow it to keep running even when your UI is not
active.


On Dec 31, 2:15 pm, Skooter Columbo <[email protected]> wrote:
> I finally figured out why the screen was turning black. It did not
> have anything to do with the Dialog option I picked. It was because I
> had a long running process and I was running it on the UI thread. I
> moved the long running process out to a seperate thread and this
> sperate thread updated the UI thread as need. This allowed the screen
> to display, and to show the count like it was designed too. If you
> need to know more about how do this then read this link. It helped me
> very much.
>
> http://code.google.com/android/kb/commontasks.html#threading
>
> It is amazing what a 4 hour nap can produce.
>
> Skooter :-)
>
> On Dec 30, 10:57 am, Skooter Columbo <[email protected]>
> wrote:
>
> > I got rid of the AlertDialog, and modified my code to use the
> > ThemeDialog approach. I made sure that I added the attribute
> > android:theme="@android:style/Theme.Dialog"  to the Android Manifest
> > file for my application. However I get the same problem. If I comment
> > out the code in the onWindowFocusChanged then the CountDown Activity
> > display, but of course it does not change. A couple of times the
> > screen displayed correctly when the code was uncommented. However it
> > only displayed for screen that showed up before when the code was
> > commented out. I think is some sort of cached screen for faster
> > access, so I don't get my hopes up.
>
> > Do you guys have any other ideas? On a lighter note, The display of
> > the dialog is much fast now than before when I was callling
> > AlertDialog.Builder.
>
> > Thanks,
>
> > Skooer
>
> > On Dec 30, 5:00 am,SkooterColumbo<[email protected]> wrote:
>
> > > yea, i was using the AlertDialog, and I used the AlertDialog.Builder
> > > to create it. I will try what you suggested.
>
> > > Thanks,
>
> > >Skooter:-)
>
> > > On Dec 30, 3:38 am, "RAJENDIRAN SUNDARRAJAN-CPB738"
>
> > > <[email protected]> wrote:
> > > >  Hi..
>
> > > > Yes you are correct that the Launch timeout expiry gives the wake lock.
> > > > In AlertDialogs the "screen becoming black" depends on the way you
> > > > create it ..
> > > > Please refer the topic "Opening a New Screen"  
> > > > fromhttp://code.google.com/android/kb/commontasks.html. Make sure if you
> > > > are using the third option of creating a dialog then the attribute
> > > > android:theme="@android:style/Theme.Dialog" need to be added in the
> > > > manifest xml of that activity using the dialog.
>
> > > > - Sundar
>
> > > > -----Original Message-----
> > > > From: [email protected]
>
> > > > [mailto:[email protected]] On Behalf OfSkooter
> > > >Columbo
> > > > Sent: Tuesday, December 30, 2008 2:47 PM
> > > > To: Android Developers
> > > > Subject: [android-developers] Screen Goes Black Between Activities, and
> > > > Next Activity never shows up.
>
> > > > From my MainActivity the user can click a button that shows a dialog.
> > > > From this dialog the user can set the number of minutes and number of
> > > > seconds from a custom Timer component, and click a start button. When
> > > > they click start, this is the OnClickListener that gets invoked.
>
> > > >    public void onClick(DialogInterface dialog, int whichButton) {
> > > >         AlertDialog alertDialog = (AlertDialog)dialog;
> > > >         Timer timer = (Timer)alertDialog.getWindow().findViewById
> > > > (R.id.timer);
>
> > > >         Intent intent = new Intent(MainActivity.this,CountDown.class);
> > > >         intent.putExtra(KEY_MINUTES, timer.getMinutes());
> > > >         intent.putExtra(KEY_SECONDS, timer.getSeconds());
> > > >         startActivity(intent);
> > > >         //startActivityForResult(intent, ACTIVITY_COUNT_DOWN);
> > > >    }
>
> > > > As you can see it is sent to the CountDown activity. What is supposed to
> > > > happen is the minutes and seconds that the user selected from the dialog
> > > > are displayed on the CountDown screen, and they begin to count down and
> > > > an explosion sound is played when zero is reached. What is really
> > > > happening, For some reason the screen goes black, and nothing is
> > > > displayed, however the explosion is played 30 seconds later if user
> > > > selected 30 seconds. The CountDown Activity has two methods onCreate and
> > > > onWindowFocusChanged. OnCreate is used to set up the view and
> > > > onWindowFocusChanged is used to count down and update the view as each
> > > > second pasts. I put the count down code in the  onWindowFocusChanged
> > > > because it there is no user intervention except to watch the time count
> > > > down, and according to the android documentation this is the best
> > > > indicator that the activity is visible to the user.http://
> > > > code.google.com/android/reference/android/app/
> > > > Activity.html#onWindowFocusChanged(boolean). See my code below.
>
> > > >    protected void onCreate(Bundle savedInstanceState) {
> > > >        super.onCreate(savedInstanceState);
> > > >        setContentView(R.layout.count_down);
>
> > > >        //instantiate the components
> > > >        mMinutesText = (TextView)findViewById(R.id.count_down_minutes);
> > > >        mSecondsText = (TextView)findViewById(R.id.count_down_seconds);
> > > >        cancelButton = (Button)findViewById(R.id.count_down_cancel);
>
> > > >        Bundle extras = getIntent().getExtras();
> > > >        mMinutes = extras.getInt(KEY_MINUTES);
> > > >        mMinutesText.setText(mMinutes);
>
> > > >        mSeconds = extras.getInt(KEY_SECONDS);
> > > >        mSecondsText.setText(mSeconds);
>
> > > >        cancelButton.setOnClickListener(new View.OnClickListener() {
> > > >             public void onClick(View view) {
> > > >                 mIsCountingDown = false;
> > > >         setResult(RESULT_OK,new Intent());
> > > >         finish();
> > > >             }
> > > >         });
> > > > }
>
> > > > @Override
> > > > public void onWindowFocusChanged(boolean hasFocus){
> > > >     super.onWindowFocusChanged(hasFocus);
> > > >     if(hasFocus){
> > > >         countDown(mMinutes,mSeconds);
> > > >         if(mMinutes == 0 && mSeconds == 0){
> > > >         MediaPlayer mp = MediaPlayer.create(this, mSound);
> > > >         mp.start();
> > > >         }
>
> > > >         Intent mIntent = new Intent();
> > > >         setResult(RESULT_OK,mIntent);
> > > >         finish();
> > > >      }
> > > > }
>
> > > > Here are logs from LogCat. I am wondering if this "Launch timeout has
> > > > expired, giving up wake lock!" is the problem. If this is the problem
> > > > then what is causing it
>
> > > > 12-30 02:40:31.926: INFO/ActivityManager(53): Displayed activity
> > > > com.android.myapp/.CountDown: 14992 ms
> > > > 12-30 02:41:40.408: INFO/ActivityManager(53): Starting activity:
> > > > Intent { comp={com.android.myapp/com.android.myapp.CountDown} (has
> > > > extras) }
> > > > 12-30 02:41:50.454: WARN/ActivityManager(53): Launch timeout has
> > > > expired, giving up wake lock!
> > > > 12-30 02:41:50.549: WARN/ActivityManager(53): Activity idle timeout for
> > > > HistoryRecord{43524f10 {com.android.myapp/ com.android.myapp.CountDown}}
> > > > 12-30 02:42:00.166: INFO/ActivityManager(53): Displayed activity
> > > > com.android.myapp/.CountDown: 19743 ms
>
> > > > Any guidance someone can provide would be very helpful.
>
> > > >Skooter:)- Hide quoted text -
>
> > > > - Show quoted text -- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> > - Show quoted text -
>
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to