我是 Android 服务的新手,所以我有一些问题可以阐明如何在我当前的项目中使用它们。
1)我是否需要运行我的应用程序才能运行服务?我是否必须启动应用程序才能启动服务?
2)我想在我的服务运行结束时在屏幕上打印一个文本。首先,是否有可能,其次,当我切换到 Activity 的屏幕时,我能否在 Activity UI 上看到此文本?
3) 我希望我的服务使用在主 Activity 类中实现的变量和函数。是否可以?
4) 与问题 3 相关:我当前的应用程序中有一个 AsyncTask,它使用 TimerTask 每分钟重复一次。我想拥有相同的功能,但这次在用户忙于做其他事情时在后台运行。服务是正确的做法吗?我可以通过从服务中运行我的 searchRegularly()(在 Activity 中)函数来实现吗?下面backgroundSearch
是每分钟运行的 AsyncTask 的名称。
public void searchRegularly() {
TimerTask doAsynchronousTask;
final Handler handler = new Handler();
searchTimer = new Timer();
doAsynchronousTask = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
handler.post(new Runnable() {
public void run() {
backgroundSearch = new SearchTask();
backgroundSearch.execute();
}
});
}
};
searchTimer.schedule(doAsynchronousTask, 1000,60000);
}
5)您如何决定使用Service还是IntentService?主要区别是什么?