package com.example.myapplication;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
public static TextView tv;
private static Handler handler=new Handler();
private boolean paused=false;
Intent serviceIntent;
public static boolean run_flag=true;
public static int flag=1;
public static long pre_long;
public static int t_psec=0;
public static int t_sec=0;
public static int t_min=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.set);
serviceIntent=new Intent(MainActivity.this,MyService.class);
//handler.post(background_work);
}
public void clear(View view)
{
flag=0;
pre_long=System.currentTimeMillis();
tv.setText("00:00:00");
t_sec=0;
t_psec=0;
t_min=0;
stopService(serviceIntent);
}
public void stvtc(View view){
flag=1;
pre_long=System.currentTimeMillis();
startService(serviceIntent);
}
public void stop(View view){
paused=true;
flag=0;
stopService(serviceIntent);
}
}
package com.example.myapplication;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyService extends Service {
private Thread workthread;
public MyService() {
}
@Override
public void onCreate() {
super.onCreate();
workthread = new Thread(null,backgroundwork,"workthread");
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
if(!workthread.isAlive()){
workthread.start();
}
}
@Override
public void onDestroy() {
super.onDestroy();
workthread.interrupt();
}
@Override
public IBinder onBind(Intent intent) {
return null;
// TODO: Return the communication channel to the service.
// throw new UnsupportedOperationException("Not yet implemented");
}
private Runnable backgroundwork=new Runnable() {
@Override
public void run() {
try {
while (MainActivity.run_flag)
{
Thread.sleep(50);
if (MainActivity.flag == 1) {
long temp_long=System.currentTimeMillis();
MainActivity.t_psec = MainActivity.t_psec + (int)(temp_long/10-MainActivity.pre_long/10);
MainActivity.pre_long=temp_long;
while(MainActivity.t_psec>=100) {
MainActivity.t_psec=MainActivity.t_psec-100;
MainActivity.t_sec=MainActivity.t_sec+1;
}
while(MainActivity.t_sec>=60)
{ MainActivity.t_sec=MainActivity.t_sec-60;
MainActivity.t_min=MainActivity.t_min+1;
}
if(MainActivity.t_min==60){
MainActivity.t_min=0;
}
//display();
MainActivity.tv.post(new Runnable() {
@Override
public void run() {
String temp_str=String.format("%02d:%02d:%02d",MainActivity.t_min,MainActivity.t_sec,MainActivity.t_psec);
MainActivity.tv.setText(temp_str);
}
});
}
}
}catch (InterruptedException e){
e.printStackTrace();
}
}
};}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:text="秒表"
android:textAlignment="center"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/set"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30dp"
android:text="00:00:00"
android:textAlignment="center"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/hour"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/min"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/sec"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始"
android:onClick="stvtc"
android:textSize="20dp"
/>
<Button
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="暂停"
android:onClick="stop"
android:textSize="20dp"/>
<Button
android:id="@+id/reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clear"
android:text="重置"
android:textSize="20dp"/>
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".MyService"/>
</application>
</manifest>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)