Android - 简单的重复后台任务
Android - Simple repeating background task
我正在尝试 运行 简单的后台服务,每隔一段时间检查日期并做我想做的事,但我在创建时遇到了问题。我正在通过叔叔Google搜索,但他无法帮助我。尽管有 AndroidManifest.xml 行:<service android:name=".HelloService" />
和 public class HelloService extends Service { }
,但我没有任何代码。我该怎么写呢?我不想使用闹钟。
您可以设置您的 Service
to run indefinitely, like with a while
loop. Inside that loop you can use something like Thread.sleep()
to make your Service
way for a while. Or you could also use Handler
,具体取决于您想要实现的目标。
不知道您为什么不想使用闹钟,但这也应该可以。
更多关于 Handler
here。
编辑: 使用 Handler
的示例代码:
public class MyActivity extends Activity {
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
// The method you want to call every now and then.
yourMethod();
handler.postDelayed(this,2000); // 2000 = 2 seconds. This time is in millis.
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slider);
handler.postDelayed(runnable, 2000); // Call the handler for the first time.
}
private void yourMethod() {
// ...
}
// ...
}
P.S.: 使用此解决方案,您的代码将在 Activity
被销毁后停止。
我正在尝试 运行 简单的后台服务,每隔一段时间检查日期并做我想做的事,但我在创建时遇到了问题。我正在通过叔叔Google搜索,但他无法帮助我。尽管有 AndroidManifest.xml 行:<service android:name=".HelloService" />
和 public class HelloService extends Service { }
,但我没有任何代码。我该怎么写呢?我不想使用闹钟。
您可以设置您的 Service
to run indefinitely, like with a while
loop. Inside that loop you can use something like Thread.sleep()
to make your Service
way for a while. Or you could also use Handler
,具体取决于您想要实现的目标。
不知道您为什么不想使用闹钟,但这也应该可以。
更多关于 Handler
here。
编辑: 使用 Handler
的示例代码:
public class MyActivity extends Activity {
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
// The method you want to call every now and then.
yourMethod();
handler.postDelayed(this,2000); // 2000 = 2 seconds. This time is in millis.
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slider);
handler.postDelayed(runnable, 2000); // Call the handler for the first time.
}
private void yourMethod() {
// ...
}
// ...
}
P.S.: 使用此解决方案,您的代码将在 Activity
被销毁后停止。