کلیدستان

نسخه‌ی کامل: ادامه فعالیت کرنومتر بعد از بسته شدن برنامه(ضروری)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام من یه کرنومتر دارم میخوام وقتی بسته شد به کارش ادامه بده و توقف نکنه مگر با دستور مستقیم برنامه نویس من ازسرویس ها استفاده کردم و هر یه ثانیه مقدار کرنومتر رو به اکتیویتی مورد نظر ارسال کردم ولی فایده نداشت اینم کد سرویسم لطفا کمک کنید
کد:
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.SystemClock;
import android.widget.Chronometer;

public class ChronometerService  extends Service {

   private Intent intent;
   public static final String BROADCAST_ACTION = "actionchronometer";

   private Handler handler = new Handler();
   private long initial_time;
   long timeInMilliseconds = 0L;
   private Chronometer runedTime;
   String hh,mm,ss;

   @Override
   public void onCreate() {
       super.onCreate();
       runedTime=new Chronometer(this);
       initial_time = SystemClock.uptimeMillis();
       intent = new Intent(BROADCAST_ACTION);
       handler.removeCallbacks(sendUpdatesToUI);
       handler.postDelayed(sendUpdatesToUI, 1000); // 1 second

   }

   private Runnable sendUpdatesToUI = new Runnable() {
       public void run() {
           timer();
           handler.postDelayed(this, 1000); // 1 seconds
       }
   };


   @Override
   public void onDestroy() {
       super.onDestroy();
       handler.removeCallbacks(sendUpdatesToUI);

   }


   private void timer() {
       runedTime.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
           @Override
           public void onChronometerTick(Chronometer cArg) {
               long time = SystemClock.elapsedRealtime() - cArg.getBase();
               int h = (int) (time / 3600000);
               int m = (int) (time - h * 3600000) / 60000;
               int s = (int) (time - h * 3600000 - m * 60000) / 1000;

                hh = h < 10 ? "0" + h : h + "";
                mm = m < 10 ? "0" + m : m + "";
                ss = s < 10 ? "0" + s : s + "";

           }
       });
       runedTime.setBase(SystemClock.elapsedRealtime());
       runedTime.start();


       String value =hh+":"+mm+":"+ss;
       intent.putExtra("time", value);
       sendBroadcast(intent);
   }



   @Override
   public IBinder onBind(Intent intent) {
       // TODO Auto-generated method stub
       return null;
   }


}
سلام.
لطفا انتقادات و پیشنهادات خود در مورد انجمن کلیدستان را صرفا در موضوع زیر مطرح کنید و از ایجاد ارسال های غیرمرتبط با موضوع، خودداری نمایید (ارسال های غیرمرتبط با موضوع حذف می شوند) :

http://www.kelidestan.com/forum/showthread.php?tid=9503

Flower