开发者

How to make Local Notification in android?

开发者 https://www.devze.com 2023-02-17 19:58 出处:网络
public class ChildLock extends Activity implements OnClickListener { ProgressDialog dialog; int increment;
public class ChildLock extends Activity implements OnClickListener
{
    ProgressDialog dialog;
    int increment;
    int maximum ;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button startbtn = (Button) findViewById(R.id.startbtn);
        startbtn.setOnClickListener(this);
    }

    @Override
   开发者_如何学Go public void onClick(View arg0) 
    {
     EditText et = (EditText) findViewById(R.id.increment);
        // convert the text value to a integer
        increment = Integer.parseInt(et.getText().toString());

        dialog = new ProgressDialog(this);
        dialog.setCancelable(true);
        dialog.setMessage("Loading...");
        // set the progress to be horizontal
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        // reset the bar to the default value of 0
        dialog.setProgress(0);

        // get the maximum value
        EditText max = (EditText) findViewById(R.id.maximum);
        // convert the text value to a integer
          maximum = Integer.parseInt(max.getText().toString());
        // set the maximum value
        dialog.setMax(maximum);
        // display the progressbar
        dialog.show();

        // create a thread for updating the progress bar
        Thread background = new Thread (new Runnable() {
           public void run() 
           {
               try 
               {
                     while(dialog.getProgress()<= dialog.getMax()) 
                   {
                       // wait 500ms between each update
                       Thread.sleep(500);
                       // active the update handler
                       progressHandler.sendMessage(progressHandler.obtainMessage());
                   }
            }
               catch (java.lang.InterruptedException e) 
               {
                   // if something fails do something smart
               }
           }
        });
        background.start();
    }

    // handler for the background updating
    Handler progressHandler = new Handler()
    {
        public void handleMessage(Message msg) 
        {
            if(dialog.getProgress()== dialog.getMax())
            {
                Intent i = new Intent(ChildLock.this, notifi.class);
                   startActivity(i);

            }
            dialog.incrementProgressBy(increment);
        }

    };

}


if you are running your progress bar in a thread which generally happen as below then you have to pass message to UI thread from this thread

     public class MyActivity extends Activity {
             private static final int PROGRESS = 0x1;

             private ProgressBar mProgress;
             private int mProgressStatus = 0;

         private Handler mHandler = new Handler();

         protected void onCreate(Bundle icicle) {
             super.onCreate(icicle);

             setContentView(R.layout.progressbar_activity);

             mProgress = (ProgressBar) findViewById(R.id.progress_bar);

             // Start lengthy operation in a background thread
             new Thread(new Runnable() {
                 public void run() {
                     while (mProgressStatus < 100) {
                         mProgressStatus = doWork();
                          mProgress.setProgress(mProgressStatus);
                        }
                        //pass messege to UI thread
                         Message msg=new Message();
                         msg.obj="your text";
                         mHandler.sendMessage(msg);

                         });
                     }
                 }
             }).start();
         }
     }

and your mHandler will be like this for notification

mHandler = new Handler() { 
              @Override public void handleMessage(Message msg) { 
                 String i=(String)msg.obj;
                 Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
              }
          };

paste this code after your while loop of progressbar thread

while(dialog.getProgress()<= dialog.getMax()){
   .......... 
  }

Message msg=new Message();
msg.obj="your text";
mHandler.sendMessage(msg);

and create mHandler at onCreate() method

0

精彩评论

暂无评论...
验证码 换一张
取 消