Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.46 KB | None | 0 0
  1. package com.countdowntimerservice;
  2.  
  3. import android.content.BroadcastReceiver;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.content.SharedPreferences;
  7. import android.preference.PreferenceManager;
  8. import android.util.Log;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Calendar;
  11. import java.util.Date;
  12.  
  13. /**
  14. * Created by igord on 21/09/2017.
  15. */
  16.  
  17. public class BootReceiver extends BroadcastReceiver {
  18.  
  19. String date_time;
  20. Calendar calendar;
  21. SimpleDateFormat simpleDateFormat;
  22. SharedPreferences.Editor mEditor;
  23. SharedPreferences mpref;
  24. Date horaquedesligou;
  25. Date horaatual;
  26. Date temporestante;
  27.  
  28.  
  29. @Override
  30. public void onReceive(Context context, Intent intent) {
  31. mpref = PreferenceManager.getDefaultSharedPreferences(context);
  32. mEditor = mpref.edit();
  33. calendar = Calendar.getInstance();
  34. simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
  35. date_time = simpleDateFormat.format(calendar.getTime());
  36. String horaquedesligous = mpref.getString("horatelefone","");
  37. String temporestanntes = mpref.getString("tempofaltando","");
  38. /* try {
  39. horaquedesligou = simpleDateFormat.parse(horaquedesligous);
  40. horaatual = simpleDateFormat.parse(date_time);
  41. temporestante = simpleDateFormat.parse(temporestanntes);
  42. } catch (ParseException e) {
  43. e.printStackTrace();
  44. }
  45. long diferenca = horaquedesligou.getTime() - horaatual.getTime();
  46. long horasrestantes = temporestante.getTime()-diferenca;*/
  47.  
  48. mEditor.putString("data", date_time).commit();
  49.  
  50. mEditor.putString("hours","" /*Aqui tenho que passar as horas restantes*/).commit();
  51.  
  52.  
  53. Intent intent_service = new Intent(context, Timer_Service.class);
  54. context.startService(intent_service);
  55. Log.e("igr", "iniciou servico do timer");
  56. }
  57. }
  58.  
  59. package com.countdowntimerservice;
  60.  
  61.  
  62. import android.app.Service;
  63. import android.content.Intent;
  64. import android.content.SharedPreferences;
  65. import android.os.Handler;
  66. import android.os.IBinder;
  67. import android.preference.PreferenceManager;
  68. import android.support.annotation.Nullable;
  69. import android.util.Log;
  70.  
  71. import java.text.SimpleDateFormat;
  72. import java.util.Calendar;
  73. import java.util.Date;
  74. import java.util.Timer;
  75. import java.util.TimerTask;
  76. import java.util.concurrent.TimeUnit;
  77.  
  78. public class Timer_Service extends Service {
  79.  
  80. public static String str_receiver = "com.countdowntimerservice.receiver";
  81.  
  82. private Handler mHandler = new Handler();
  83. Calendar calendar;
  84. SimpleDateFormat simpleDateFormat;
  85. String strDate;
  86. Date date_current, date_diff;
  87. SharedPreferences mpref;
  88. SharedPreferences.Editor mEditor;
  89.  
  90. private Timer mTimer = null;
  91. public static final long NOTIFY_INTERVAL = 1000;
  92. Intent intent;
  93.  
  94. @Nullable
  95. @Override
  96. public IBinder onBind(Intent intent) {
  97. return null;
  98. }
  99.  
  100. @Override
  101. public void onCreate() {
  102. super.onCreate();
  103.  
  104. mpref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
  105. mEditor = mpref.edit();
  106. calendar = Calendar.getInstance();
  107. simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
  108.  
  109. mTimer = new Timer();
  110. mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 5, NOTIFY_INTERVAL);
  111. intent = new Intent(str_receiver);
  112. }
  113.  
  114.  
  115. class TimeDisplayTimerTask extends TimerTask {
  116.  
  117. @Override
  118. public void run() {
  119. mHandler.post(new Runnable() {
  120.  
  121. @Override
  122. public void run() {
  123.  
  124. calendar = Calendar.getInstance();
  125. simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
  126. strDate = simpleDateFormat.format(calendar.getTime());
  127. Log.e("strDate", strDate);
  128. mEditor.putString("horatelefone", strDate).commit();
  129.  
  130. twoDatesBetweenTime();
  131.  
  132. }
  133.  
  134. });
  135. }
  136.  
  137. }
  138.  
  139. public String twoDatesBetweenTime() {
  140.  
  141.  
  142. try {
  143. date_current = simpleDateFormat.parse(strDate);
  144. } catch (Exception e) {
  145.  
  146. }
  147.  
  148. try {
  149. date_diff = simpleDateFormat.parse(mpref.getString("data", ""));
  150. } catch (Exception e) {
  151.  
  152. }
  153.  
  154. try {
  155.  
  156.  
  157. long diff = date_current.getTime() - date_diff.getTime();
  158. int int_hours = Integer.valueOf(mpref.getString("hours", ""));
  159.  
  160. long int_timer = TimeUnit.HOURS.toMillis(int_hours);
  161. long long_hours = int_timer - diff;
  162. long diffSeconds2 = long_hours / 1000 % 60;
  163. long diffMinutes2 = long_hours / (60 * 1000) % 60;
  164. long diffHours2 = long_hours / (60 * 60 * 1000) % 24;
  165.  
  166.  
  167. if (long_hours > 0) {
  168. String str_testing = diffHours2 + ":" + diffMinutes2 + ":" + diffSeconds2;
  169.  
  170. Log.e("TIME", str_testing);
  171.  
  172. fn_update(str_testing);
  173. } else {
  174. mEditor.putBoolean("finish", true).commit();
  175. mTimer.cancel();
  176. }
  177. }catch (Exception e){
  178. mTimer.cancel();
  179. mTimer.purge();
  180.  
  181. }
  182.  
  183. return "";
  184.  
  185. }
  186.  
  187. @Override
  188. public void onDestroy() {
  189. super.onDestroy();
  190. Log.e("Serivco finalizado","Finalizado");
  191. }
  192.  
  193. private void fn_update(String str_time){
  194. mEditor.putString("tempofaltando", str_time).commit();
  195.  
  196. intent.putExtra("time",str_time);
  197. sendBroadcast(intent);
  198. }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement