問題タブ [android-intentservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android の設計上の考慮事項: AsyncTask とサービス (IntentService?)
次の手順を実行する必要がある Android アプリを設計しています。
- ユーザーがボタンを押すか、「データの同期」を指示します。
- 同期プロセスは、REST Web サービスを使用してサーバーとの間でデータを移動します。
- データは sqlite データベースにローカルに保存されます。
- 同期プロセスは、ステータスの更新/メッセージを UI に提供する必要があります
- ユーザーがアプリケーションの他の部分に移動して、同期プロセス中にさらに作業を行うことを許可しないでください。
初めて同期プロセスを実行するときは、10 ~ 20 分かかる場合があります。最初の同期後、転送および保存されるデータは少なくなり、プロセスにかかる時間は 1 ~ 2 分以内になると思います。
私はアンドロイドAsyncTask
とサービスを使用するさまざまな例について多くのことを読んできました...しかし、設計上の考慮事項と、ある設計を他の設計よりも選択する際のトレードオフを完全には理解していません。現在、AsyncTask を使用してデモ プロジェクトをスタブ化しています。(ほとんどの) Android REST クライアント アプリケーションの開発を見た後 : http://code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html#おそらく私はまだ「理解していない」だけなので、過度に複雑に感じます.
私は、Java、Spring、Web、およびデスクトップ アプリケーションのバックグラウンドを持っています。ハンドヘルド デバイスの観点から考えて設計することは、私にとってまったく新しいことです。(画面レイアウトが変更された場合はどうなりますか?同期の実行中に電話が鳴ったらどうなりますか?) 最初の同期が非常に長時間実行されるプロセスになる場合、2 歩戻って、より良い方法はありますか?私は問題について考えます->解決策、ユーザーエクスペリエンス、電話で実行されているアプリケーションに対するユーザーの期待?
すでにこれらの質問に取り組んでいる、経験豊富な Android 開発者の意見をぜひお聞かせください。
android - Android RuntimeException: サービスをインスタンス化できません
別のスレッド (UI スレッドではなく) で実行されるサービスを作成したいので、IntentService を拡張するクラスを実装しました。しかし、私は運がありません。これがコードです。
アクティビティ ボタン クリックでのサービスの利用:
android - キューに関する情報をIntentServiceに要求する
Webサーバーに対して行う必要のあるWebサービス呼び出しをキューに入れるIntentServiceがあります。したがって、各インテントは、行われるWebサービス呼び出しです。
特定のデータを含むインテントがあるかどうかをアプリケーションがこのIntentServiceに要求できるように設定したいと思います(つまり、「クラウドにxデータを要求するのをすでに待っていますか?それとも、次のように指示する必要がありますか?やれ?")。
これを行うためにIntentServiceを拡張する方法について何か提案はありますか?IntentServiceのインテントキューをトラバースできますか?または、IntentServiceコードを取得して変更する必要がありますか?
私が持っている他の唯一のアイデアは、データベースにテーブルを追加し、キューにある呼び出しをログに記録することです。各ログは、完了するとテーブルから削除されます。
android - Android:intentservice、handleintentキュー内のタスクを中止またはスキップする方法
インテントサービス( "DownloadService")を呼び出すアクティビティ( "ApplicationActivity")があります
intentServiceはバックグラウンドでインターネットからファイルをダウンロードしますが、特定のダウンロードを中止できるようにしたいです.........
それで、私が5つのファイルをキューに入れたとしましょう:ファイル1、2、3、4、5
インテントサービスは、番号1、次に2番目などのダウンロードを開始します。1)メソッドハンドルイベント(この場合はファイルのダウンロード)で現在実行していることをインテントサービスに中止するように指示する方法はありますか? 1)そして次のものをダウンロードし始めますか?
2)キューから要素を削除することは可能ですか?たとえば、ファイル1をダウンロードしているときに、ファイル4をキューから削除して、番号3の後に5に直接移動するようにしますか?
間もなく、これら2つの簡単な操作を実行するためにキューと通信する方法が必要ですが、インターネット上で有用なものは何も見つかりませんでした:(
Tnx
android - IntentService と Service の違いは何ですか?
IntentService
anと aの違いを教えてくださいService
。
android - Android プラットフォームでの Service と IntentService
IntentService
で実行でき、で実行できないService
(およびその逆)の例を探していますか?
IntentService
また、 a は別のスレッドで実行され、 a は実行されないと考えてService
います。したがって、私が見る限り、独自のスレッド内でサービスを開始することは、IntentService
. あれは正しいですか?
android - Android IntentService はクラスをインスタンス化できません。空のコンストラクターはありません
MainActivity
オンライン API にアクセスする必要があるクラスがあります (したがって、ネットワーク リソースを使用します)。これには、別のファイルで作成したバックグラウンド スレッドが必要ですHttpRequestService.java
。
MainActivity.java:
HttpRequestService.java:
LogCat は次のとおりです。
私が考える重要な部分はcan't instantiate class com.example.HttpRequestService; no empty constructor
. これに似た他の議論をいくつか見たことがありますが、それらのクラスは MainActivity のサブクラスであるため、すべて問題を解決できます。したがって、サブクラスを静的にするだけで問題が解決します。残念ながら、個別のクラスHttpRequestService
を静的にすることはできません。助言がありますか?
android - Android InstantiationException : 空のコンストラクターがありません
IntentService を開始しようとすると、InstantiationException が発生します。ここで他のスレッドを見てきましたが、答えは私の問題を解決しません。私のサービス クラスにはデフォルトのコンストラクターがあります。これが私のサービスクラスです。(これはファイル FindMeService.java で定義されており、そのファイル内の唯一のクラスです。)
}
アクティビティ内から startService() を呼び出してサービスを開始しています。ログは次のように読み取られます。
サービス開始までの流れはこちら
マニフェスト ファイルの関連部分を次に示します。