私は Android サービスを初めて使用するので、現在のプロジェクトでそれらをどのように使用できるかを明確にするいくつかの質問がありました。
1) サービスを実行するには、アプリケーションを実行する必要がありますか? サービスを開始するには、アプリケーションを起動する必要がありますか?
2) サービス実行の最後に画面にテキストを出力したい。まず、アクティビティの画面に切り替えたときに、アクティビティ UI にこのテキストを表示できますか?
3) メインの Activity クラスに実装されている変数と関数をサービスで使用したい。出来ますか?
4) 質問 3 に関連: 現在のアプリケーションに、TimerTask を使用して毎分繰り返す AsyncTask があります。私は同じ機能を持ちたいのですが、今回はユーザーが何か他のことをしているときにバックグラウンドで実行しています。サービスはそれを行うのに正しいことですか? サービスから searchRegularly() (アクティビティにある) 関数を実行することでそれを達成できますか? 以下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 のどちらを使用するかをどのように決定しますか? 主な違いは何ですか?