2011-08-31 68 views
0

在我的应用程序中,用户可以设置一定的时间,我希望当时间达到设定的时间(基本上是一个闹钟)时,在屏幕上显示通知,以确定应用程序当前是否正在运行。在android上运行闹钟的后台服务?

我该如何去做这件事?

回答

2

检查现在,我已经更新了代码。

这里是CountDownTimer的代码。 当时间完成时,它发送一个通知。 您可以在Service或正常活动中使用它。

 public String ns = Context.NOTIFICATION_SERVICE; 
     public NotificationManager mNotificationManager;  
     Notification notification; 
     PendingIntent contentIntent; 
     Intent notificationIntent; 

     public class Main extends Activity{ 
      private final long startTime = 50000; 
      private final long interval = 1000; 

      @Override 
      public void onCreate(Bundle savedInstanceState) 
       { 
        super.onCreate(savedInstanceState); 
          int time=Integer.parseInt(editText.getText().toString()); 
          time=time*1000; 
          startTime = time; 

          // place this code on button listener if you want. 
        countDownTimer = new MyTimer(startTime, interval); 
       } 
     } 

     public class MyTimer extends CountDownTimer 
     { 
      public MyTimer(long startTime, long interval) 
       { 
        super(startTime, interval); 
       } 

       @Override 
       public void onFinish() 
       { 
        mNotificationManager = (NotificationManager) getSystemService(ns); 
        notificationIntent = new Intent(this, MyActivity.class); 
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
        notification = new Notification(R.drawable.icon,"Time up..", System.currentTimeMillis()); 
        notification.setLatestEventInfo(this, "CallingaCab", "YOUR TIME COMPLETED", contentIntent); 
        mNotificationManager.notify(0, notification); 
        startActivity(notificationIntent); 
       } 

       @Override 
       public void onTick(long millisUntilFinished) 
       { 
        //Perform what do you want on each tick. 
       } 
      } 
     } 
+0

如何从倒数计时器内开始活动? – molleman

+0

什么是传入getSystemService的变量? NS? – molleman

+0

现在检查,我已经更新了代码。 – Noby