我正在开始 Android 开发,现在正在学习服务。
我创建了一个简单的服务来连续烤一个字符串。
我拿了两个按钮来启动和停止服务。
当我单击开始按钮时,服务会启动并持续烘烤字符串。
但是当我通过单击停止按钮来停止服务时,它并没有停止。
它将继续不断地烘烤字符串。
public class MyService extends Service {
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
doToast();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
}
public void doToast()
{
final Handler handler= new Handler();
handler.postDelayed(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(MyService.this, "hi", 0).show();
handler.postDelayed(this, 3000);
}
}, 3000);
}
}
这是启动和停止服务的代码
startservice.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startService(new Intent(getBaseContext(), MyService.class));
}
});
stopservice.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
stopService(new Intent(getBaseContext(), MyService.class));
}
});