آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ادامه فعالیت کرنومتر بعد از بسته شدن برنامه

Reza Masoudi  9 سال پیش  9 سال پیش
0 0

سلام من یه کرنومتر دارم میخوام وقتی برنامه بسته شد به کار خودش ادامه بده من از سرویس استفاده کردم و هر یه ثانیه مقدار کرنومتر رو به اکتیویتی ارسال کردم ولی جواب نداد



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 = "CHRONOMETERVALUE";

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;
}


}
+3 0
فکر می کنم به جای اینکه راهی پیدا کنید برای اینکه کورنومتر به فعالیت خودش ادامه بده میتونید در هنگام بسته شدن برنامه با متد System.currentTimeMillis() زمان خارج شدن از برنامه رو ذخیره کنید که برا ی حفظ کردن این زمان میتونید اون رو در shared preferencesذخیره کنید و وقتی دوباره برنامه باز شد مجدد باز شد زمان فعلی رو دوباره با همون تابع بالا به دست بیارید و ذخیره کنید و با کم کردن از هم زمان رو به دست بیاری ضمنا System.currentTimeMillisبر حسب میلی ثانیه به شما زمان میدهد و در صورت دلخواه می توانید تبدیل به ثانیه کنید . (9 سال پیش)
+3 0
مشابه کاری که می خواید بکنید در نرم افزار های مدیاپلیر وجود داره و شما حتما باید از service ها استفاده کنید (9 سال پیش)
0 0
کسی پیشنهادی نداره لطفا دوستان به قول خارجیا پلیز هلپ می (9 سال پیش)
0 0
به نظر میاد کدهای سرویس رو اشتباه نوشتید، من از یه روش دیگه استفاده می کنم و جواب میده که باید کدها رو توی متد onStartCommand بنویسید: لینک (9 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
Reza Masoudi  9 سال پیش
0 0

دوستان لطفا کمک کنید ضروریه

پاسخ به سوال 
Reza Masoudi  9 سال پیش
0 0

بله خانم رپیسی اینم ایده خوبیه ولی من میخوام به محض بسته شدن برنامه کرنومتر در ناتیفیکیشن به فعالیت خود ادامه بده

پاسخ به سوال 
Reza Masoudi  9 سال پیش
0 0

کسی نیس یه راهنمایی درست حسابی کنه

پاسخ به سوال 
Reza Masoudi  9 سال پیش
0 0

3 2 1  الو کسی صدامو داره


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .