package com.walker.exp5;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainService extends Service {
private Thread workthread;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
workthread = new Thread(null,backgroudWork,"workThread");
//Log.e("ATG","onCreate");
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
if(!workthread.isAlive()){
workthread.start();
}
// Toast.makeText(this,"onStart()",Toast.LENGTH_SHORT).show();
//Log.e("ATG","onStartCommand");
}
// @Override
// public int onStartCommand(Intent intent, int flags, int startId) {
// if(!workthread.isAlive()){
// workthread.start();
// }
// Log.e("ATG","onStartCommand");
// return super.onStartCommand(intent, flags, startId);
//
// }
@Override
public void onDestroy() {
//super.onDestroy();
workthread.interrupt();
// Log.e("ATG","onDestroy");
//Toast.makeText(this,"onDestroy()",Toast.LENGTH_SHORT).show();
}
private Runnable backgroudWork = new Runnable() {
@Override
public void run() {
LayoutInflater layoutInflater = LayoutInflater.from(MainService.this);
View view = layoutInflater.inflate(R.layout.activity_main,null);
TextView tv_hh = view.findViewById(R.id.tv_hh);
TextView tv_mm = view.findViewById(R.id.tv_mm);
TextView tv_ss = view.findViewById(R.id.tv_ss);
int h = Integer.parseInt(tv_hh.getText().toString());
int m = Integer.parseInt(tv_mm.getText().toString());
int s = Integer.parseInt(tv_ss.getText().toString());
while (true) {
try {
Thread.sleep(1000);
s++;
if (s >= 60) {
m++;
s = 0; //秒钟等于60,分钟加1,秒钟置0
if (m >= 60) {
h++;
m = 0;
if (h >= 24) {
h = 0;
}
}
}
MainActivity.UpadteGUI(h,m,s);
} catch (Exception e) {
e.printStackTrace();
break;
}
}
}
};
}
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainService extends Service {
private Thread workthread;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
workthread = new Thread(null,backgroudWork,"workThread");
//Log.e("ATG","onCreate");
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
if(!workthread.isAlive()){
workthread.start();
}
// Toast.makeText(this,"onStart()",Toast.LENGTH_SHORT).show();
//Log.e("ATG","onStartCommand");
}
// @Override
// public int onStartCommand(Intent intent, int flags, int startId) {
// if(!workthread.isAlive()){
// workthread.start();
// }
// Log.e("ATG","onStartCommand");
// return super.onStartCommand(intent, flags, startId);
//
// }
@Override
public void onDestroy() {
//super.onDestroy();
workthread.interrupt();
// Log.e("ATG","onDestroy");
//Toast.makeText(this,"onDestroy()",Toast.LENGTH_SHORT).show();
}
private Runnable backgroudWork = new Runnable() {
@Override
public void run() {
LayoutInflater layoutInflater = LayoutInflater.from(MainService.this);
View view = layoutInflater.inflate(R.layout.activity_main,null);
TextView tv_hh = view.findViewById(R.id.tv_hh);
TextView tv_mm = view.findViewById(R.id.tv_mm);
TextView tv_ss = view.findViewById(R.id.tv_ss);
int h = Integer.parseInt(tv_hh.getText().toString());
int m = Integer.parseInt(tv_mm.getText().toString());
int s = Integer.parseInt(tv_ss.getText().toString());
while (true) {
try {
Thread.sleep(1000);
s++;
if (s >= 60) {
m++;
s = 0; //秒钟等于60,分钟加1,秒钟置0
if (m >= 60) {
h++;
m = 0;
if (h >= 24) {
h = 0;
}
}
}
MainActivity.UpadteGUI(h,m,s);
} catch (Exception e) {
e.printStackTrace();
break;
}
}
}
};
}