2011-06-28 8 views
3

バックグラウンドサービスに関するいくつかの助言や提案が必要です。Androidでのバックグラウンドサービス - ヘルプが必要

これを達成したいと思います。いくつかのビューを持つアプリケーションもあります。このアプリケーションでは、バックグラウンドサービスも常に実行されています。

ボタンを押すたびにボタンがあり、そのボタンはバックグラウンドサービスにいくつかのファイルを渡し、バックグラウンドサービスはそのファイルを一部のサーバーにアップロードします。

アップロードプロセスが完了しました。今、私は、バックグラウンドサービスを常に実行し続け、バックグラウンドサービスを実行して、ファイルをサービスに送信するボタンをタップする方法を知りたいと思います。

私はバックグラウンドサービスの実装で新しくなっています。

友だちにチュートリアル、提案、ガイドラインをご案内ください。

おかげでたくさん

+1

Google Android開発サイトのいくつかのドキュメントを読むために友だちを取得しようとしましたか?この種のことについては、ドキュメンテーションとサンプルがあります。 –

+0

サービスを永遠に実行する必要があるようには聞こえません。ユーザーがボタンを押したときに起動し、何が完了する必要があるときに停止します。 – Marmoy

答えて

4

あなたはおそらく既にAndroidのサービスのドキュメントのいくつかを読んだが、あなたはまだ行っていない場合、私はさらにそれを研究し、ローカルサービスのサンプルを見てお勧め:

http://developer.android.com/reference/android/app/Service.html

ですね既にサービスを稼働させているように、あなたが今解決しようとしている実際の問題は、アクティビティからサービスにデータを伝達する方法です。アクティビティが同じアプリケーションの一部であるサービスにバインドされている場合、そのサービスは同じプロセス内にあり、同じメインUIスレッドで実行されるため、バインディング後にサービスからIBinderオブジェクトを取得すると、アクティビティからそのサービス内の関数を呼び出します。同様に、サービスがアクティビティからハンドラオブジェクトを渡すことで、サービスがメッセージを送信したり、Runnableをアクティビティに送信したりすることができます。 ローカルとの通信サービスは非常に簡単です。

あなたは上記のリンクにあるローカルサービスのサンプルを見てみるのであれば、あなたは私たちが一度結合サービスへの参照を取得し、コード内のセクションが完了しました表示されます。その後

mBoundService = ((LocalService.LocalBinder)service).getService(); 

を同じアプリケーション内にあるそのサービス上のメソッドを直接呼び出すことが可能です。たとえば、サービスでsendFileというメソッドを使用できます。

mBoundService.sendFile(myStuffObject); 

アクティビティとサービスの間の通信に関するスタックオーバーフローに関する質問のかなりの数があり、私はあなたはそれが有益検索し、これらを読むことを見つけるだろうと思う:あなたの活動では、あなたのような何かをするかもしれません。

3

は標準Android serviceは、この場合にはうまくやるだろう。 作業が終了するまで、または停止するまでバックグラウンドで実行を継続します。 サービスを詳細に説明しているtopic on the android dev siteがあります。

2

あなたは、バックグラウンド操作に使用されるサービスのために行く必要があります。サービス内では、TimerTaskを使用して、x秒ごとにキューをチェックし、キューにあるアイテムがアイテムを取得してサーバーにアップロードするときに使用します。 ここにAndroidサービスのリンクがあります。 http://developer.android.com/reference/android/app/Service.html

リンクフロキュー。 http://developer.android.com/reference/java/util/Queue.html