gpt4 book ai didi

java - 处理程序、可运行和服务 : I put everything together and it doesn't really work

转载 作者:行者123 更新时间:2023-11-30 03:18:34 24 4
gpt4 key购买 nike

我想创建一个服务,在 10 秒后一遍又一遍地运行一个方法,直到我停止它。它不起作用。有人可以帮助我吗?

package com.example.tauben;


import java.util.Timer;
import java.util.TimerTask;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class Reminder extends Service {


@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
TimerTask task = new TimerTask() {
public void run(){
f();
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, 0, 10000);
}
public void f(){
Toast t = Toast.makeText(this, "Service is still running", Toast.LENGTH_SHORT);
t.show();
}

}

这就是我启动服务的方式。

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(Log_TAG,"_____________RESTART__________");

Intent i= new Intent(this, Reminder.class);
startService(i);
}

最佳答案

好吧,我可以想到 2 种替代方案来替代您要在此处实现的目标。

1- 使用 TimerTask 设置一个重复任务,每 10 秒调用一次所需的方法。

2- 使用AlarmManagersetRepeating 方法。

这两种选择都更好。您可以通过谷歌搜索两者的示例以更好地理解。

快乐编码:)

编辑:- 我似乎使用 HandlerpostDelayed()

让您的原始代码正常工作
package com.example.tauben;


import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.widget.Toast;

public class Reminder extends Service {

Handler mHandler;

@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
mHandler = new Handler();
Runnable r = new Runnable() {
@override
public void run() {
f();
mHandler.postDelayed(this, 10000);
}
};
mHandler.postDelayed(r, 10000);
}
public void f(){
Toast t = Toast.makeText(this, "Service is still running", Toast.LENGTH_SHORT);
t.show();
}

}

关于java - 处理程序、可运行和服务 : I put everything together and it doesn't really work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19590928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com