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 被销毁后停止。