So, seeing that this answer is getting more and more upvotes, I have decided that I should take it upon myself to improve the quality of the answer. As I look at the original, I see no real 'answer' to the question of "what is the problem in my code?". I am leaving the original answer intact below to preserve the linking, which is what I am assuming has caused the answers popularity.
Updated Answer
It is likely that you are violating the 'single thread model'. The Android UI Toolkit is not threadsafe, and should only be manipulated from the 'main' UI thread. Android has a handful of helpful methods you can use to ensure that your UI manipulations are done on the UI thread. Most of the details of these method calls can be found in the Android Painless Threading blog post (linked in the word 'one' below, and here for quick reference).
Looking at your code, the specific violation I see is that a ProgressDialog
is being created in what is likely the UI thread, which is then dismissed in the newly created background thread.
You would be better off encapsulating your background method in a Runnable
and using View#post(Runnable)
to do the work in the background.
Remember, there are many ways to do background, so take a look at what is available, and use what feels right for your situation.
Original Answer
Take a look at one of the many tutorials of how to do asynchronous work in Android.
Also, here are some other StackOverflow questions that are similar
Progress dialog problem in Android
Progress Dialog on open activity
Progress Dialog while starting new activity
Android: Progress Dialog spinner not spinning
Updating progress dialog
android: showing a progress dialog
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…