問題タブ [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: フラグメント内でインテント サービスを開始する
アクティビティ内に複数のフラグメントがあります。すべてのフラグメントは、REST を使用してサーバーからフェッチされたデータを表示する必要があります。IntentService
REST リクエストに対応するレシーバーを実装しています。現在、アクティビティ内でフラグメントを内部クラスとして作成することでこれを行うことができます。
私が内部クラスで抱えている問題は、方向の変更時に、「フラグメントをインスタンス化できません、空のコンストラクターがありません」のようなエラーがスローされることです。この問題について、検索すると、内部クラスを静的にするか、フラグメントのスタンドアロンのパブリック クラスを作成するなどの回答が見つかりました。なぜこれが向きの変更で起こるのか、私はまだ理解していません。
ここで、Fragment 用に別のスタンドアロン クラスを作成するアプローチを取ると、アクティビティ オブジェクトを dostartService
とregisterReceiver
. AsyncTask
私のアプリでは、単一のフラグメント内で複数の REST リクエストを実行し、IntentService
すべてのリクエストの後にブロードキャストを送信できるようにするため、これを使用したくありません。スクリーン。そして、アクティビティオブジェクトをフラグメントに渡すのは良くないと思います。同じフラグメントを複数のアクティビティで使用できるように、フラグメントをアクティビティとできるだけ疎結合にするべきではありませんか? はいの場合、これを解決するための最良のアプローチは何ですか?
android - 同じコード ベースが同時にインストールされた 2 つの Android ターゲット
ライブラリ プロジェクトを使用して、同じコード ベースから派生した 2 つの異なる Android アプリを構築しようとしています。
アプリはさまざまな操作にインテント サービスを使用していますが、同じコード ベースを使用する 2 つのアプリを同時にインストールすると失敗するようです。
インストールしたアプリの最初のバージョンのみが機能するようで、2 番目のバージョンではサービスが実行されないようです。
誰もこれを経験したことがありますか?これはどのように解決できますか?
編集:これらはマニフェストです
ベース:
ターゲット 1:
ターゲット 2:
android - 最も電力効率の高い位置追跡の実装?Intent / BroadcastReceiver / LocationListener / Service / IntentService / AlarmManager?
私は解決策を試しましたが、位置追跡ロジックを実装する方法はたくさんあることがわかりました。
- Intent + BroadcastReceiver + LocationListener
- Intent + IntentService + AlarmManager
- LocationListener
- 他のテクニックまたは上記のさまざまな組み合わせ...
私は同じことを達成するためのベストプラクティス(最も電力効率の良い方法)を見つけようとしています...
2つのメソッドを持つライブラリクラスMyLocationClass.javaがあります。1。startTracking()-T時間後に、ユーザーがX距離を移動した場合にのみユーザーの場所の送信を開始します。2。stopTracking()-場所の更新の送信を停止します。
簡単な答えは、より良いユーザーエクスペリエンスを提供する組み込みのTime Passed / Distance Moved機能があるため、LocationListenerのようですが、...
GPSを常時オンにしたくないですか?実際、TとXが交差する場合にのみオンにする必要があります。Service / IntentServiceおよび/またはアラームマネージャータイマーを使用する方が良い解決策になりますか?LocationListenersを備えたBroadcaastReceiversがより良いソリューションであることが証明できますか?
提案してください。
android - Android4.0.3のNetworkOnMainThreadException
電話からサーバーにデータをアップロードするインテントサービスがあります。ネットワーク接続が利用できるときはいつでも、私はそれを放送受信機から始めます。すべて正常に動作しますが、Android 4.0.3エミュレーターでテストすると、strictmodeエラーandroid.os.NetworkOnMainThreadExceptionが発生します。このネットワークジョブはメインスレッド上にあるようですが、私が知る限り、intentserviceはワーカースレッドを作成します。このリンクもhttp://code.google.com/p/android/issues/detail?id=23495で見つかりました。これは、ネットワークジョブをバックグラウンドスレッドに移動することを示しています。ワーカースレッドはバックグラウンドスレッドではありませんか?
編集:これは私の放送受信機です。
そして、これは私がLogCatで見るエラーです:
android - IntentServiceを停止する適切な方法
IntentServiceを使用して画像をサーバーにアップロードしています。私の問題は、サービスを停止する方法とタイミングがわからないことです。onHandleIntent(Intent ..)でstopself()を呼び出すと、IntentServiceキューで待機しているすべてのインテントが削除されます。ただし、アプリケーションが実行されていなくてもアップロードプロセスを完了したいので、アクティビティからサービスを停止したくありません。
android - Using Alarm Manager to start a service but only if main application isn't running
Ok so the issue here that I have a video camera which is connected to a phone via Bluetooth. All communication with the device is via an android Service. The Service periodically updates the camera with GPS coordinates. The service unfortunately is not written by my company and we only have control over starting it and sending it commands (however it does the GPS on its own, if connected to a device). Once the service is started by our application we try to connect to any paired devices that contain my companies OUI. Once a device disconnects (maybe its turned off or battery runs out), it will not be automatically reconnected until the user re-launches our application. Thus GPS coordinates will not get sent to the camera in that scenario.
This is a problem because the user (who doesn't know anything about these services and what not) would think if he turned the device back on it should be connected.
So I was thinking I could use AlarmManager with a broadcast receiver or a service (probably an intent service because the connection takes several seconds to complete). Perhaps once ever few minutes I could check for a connection to the camera. If its present just quit, and if not attempt to connect (if there are paired devices).
However the problem is what if my application is already running? If it is then the user controls connecting to the device (they are prompted for it). Do I need to use shared preferences or something like that to tell if my application is running/shut down? Is there any way to tell from a service if the application is running? I can see this getting tricky. If anyone has ideas how to handle this let me know.
android - IntentService に実装された Android LocationLister は OnLocationChanged() メソッドを実行しません
LocationListener インターフェイスを実装する IntentService を作成しました。サービスは、OnLocationChanged() メソッドが初めて呼び出されたときにメッセージを送信する必要があります。しかし、OnLocationChanged() は決して呼び出されません。これが私のコードです:
誰にもアイデアがありますか?
android - IntentServiceをアクティビティから停止します
私はこの状況で助けが必要です:
- IntentServiceを開始するアクティビティがあります。
- サービスは、サイクル中に何らかの仕事をし、しばらくの間眠ります。
- サービスのメインサイクルは無限ですので、再び活動を停止する必要があります。
アクティビティを終了し、再開し、アクティビティの新しい「インスタンス」からIntentServiceを停止できる必要があります。
/li>
..。
電話をかけてみましたが、うまくいきstopService()
ません。これを行う方法はありますか?前もって感謝します。
android - google io 2010の残りのクライアントアプリの設計アプローチはまだ最新ですか?
2年前、フラグメント、インテントサービス、カーソルローダーが登場しました。アプローチはまだ最新ですか、それともAndroid Restクライアントを設計するためのより良いまたは成熟したパターンがありますか?特にオプションBと比較してください(私には画像を投稿する権限がありませんが、代わりにこの投稿から画像を見つけることができます)。
コンテンツプロバイダーの部分が不可欠であることを私は知っています。サービスヘルパーとサービスコンポーネントはどうですか?これまで、startServiceメソッドはContextまたはそのサブクラスの性質です。これは、サービスヘルパーがアクティビティになることを意味します。したがって、コンテンツプロバイダーからアクティビティを開始するのはエレガントですか、それとも上部のアクティビティから開始する必要があります。
- google io 2011 ioschedアプリのソースコードを掘り下げた方は、HomeActivityの静的クラスSyncStatusUpdaterFragmentをサービスヘルパーと見なしますが、SyncServiceを開始することはできませんでしたが、SyncServiceからのコールバックをリッスンします。 UIの更新をトリガーします。それで、それはVirgil Dobjanschiのアプローチの変化と見なすことができますか?
サービス、インテントサービス、asyncTask、およびスレッドがあります。私の意見では、インテントサービスは、リモートサーバーからのデータのメガパックの同期に適しています。そのため、彼らはioschedでそれを使用します。ただし、一般的なシナリオでは、アイテムの一部のみがリモートサーバーと同期されます。したがって、インテントサービスは重すぎます。サービスアプローチですら。この種のタスクを実行するために、コンテンツプロバイダーまたはそのコンポーネントでasyncTaskまたはスレッドを使用できますか。または、サービスを使用して、サービスヘルパー-サービス-プロセッサパスを通過する説得力のある理由がありますか。私は深刻なアプリケーションについて話している。
それで、あなたはどう思いますか?
android - Android: IntentService は、特定の条件下でアクティビティの UI をフリーズします。それを防ぐ方法は?
アプリを初めてインストールすると、IntentService は非同期で正常に動作します (ランチャー アクティビティの「onCreate()」内から「startService」を呼び出しても、アクティビティ UI はフリーズしません)。ただし、既存のインストールに再度インストールすると、開始された IntentService の「onHandleIntent」が完了するまで、ランチャー アクティビティの UI がハングします (「startActivity」を「AsyncTask doInBackground」または「Handler post」に入れても)。何を与える?IntentService は常に非同期であるべきだと思いますが、そのような場合はそうではありません。「onHandleIntent」が常に非同期で実行され、それが呼び出されたアクティビティの UI をブロックしないことを保証するにはどうすればよいですか? これは、誰かがアップデートなどをインストールしたときにアプリに影響を与えるようです.