問題タブ [android-service]

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.

0 投票する
1 に答える
746 参照

android - グローバルオブジェクトを介したAndroidサービスへのアクセス

私の活動のいくつかがアクセスする必要があるシンプルなサービスがあります。標準的なアプローチは次のようです。

  1. ServiceConnectionを作成して、[サービスオブジェクトと]バインドした後に何をするかを指定します
  2. ServiceConnectionを使用してbindServiceを呼び出します

ただし、これには、アクティビティごとに少なくとも1回bindServiceを呼び出す必要があります。bindServiceを1回だけ呼び出すと、サービスオブジェクトをグローバルに保存して、さまざまなアクティビティがアクセスできるようになりますか?

これは悪い習慣ですか?なんで?

0 投票する
2 に答える
32265 参照

android - サービスのインスタンスを 1 つだけ作成する (Android)

Service のインスタンスが 1 つだけ作成されるようにするにはどうすればよいですか?

ロギングでいくつかの機能を確認しました(WeatherServiceはServiceを拡張するクラスです):

同じ関数が 2 回実行されている (ダウンロード) と確信している場合でも、異なるハッシュ コードが表示されます。

私はアクティビティをサービスにバインドしています:

また、サービスは完了するまで数分間実行できるため、サービスは多くのアクティビティにバインド/作成できます

0 投票する
1 に答える
1395 参照

android - Androidサービスのエラー処理

サービスエラー処理の最良の方法は何ですか?たとえば、Interntから情報を取得するサービスがありますが、接続が悪い場合にメッセージ付きのダイアログをユーザーに表示したいと思います。または、サービスで使用されるHTMLを解析するためのUtilクラスがあり、このUtilクラスで例外が発生した場合。ダイアログを表示する方法は?私が知っているように、DialogBu​​ilderにはいくつかのアクティビティコンテキストが必要ですが、サービスコンテキストはこれに対して間違っています。右?ありがとう。

0 投票する
1 に答える
1516 参照

android - Android アクティビティで通知を処理する方法

x 秒ごとに RESTful API を照会するアクティビティがあります (ハンドラーを使用してポーリングします)。GET の結果は、ListView を更新するために使用されます。これは、AsyncTask を使用して行われます。

新しいデータで特定の基準が満たされたときに、通知バーに通知を表示したいと考えています。ここまで読んだことはすべて、アプリケーションがフォーカスされていないときでも通知を行うことができるように、サービスを使用して通知を作成および更新する必要があることを示唆していました。私はこれの肯定的な側面を見ます。

ただし、アクティビティ内からサービスを作成するだけでよいのか、それよりも複雑なことをする必要があるのか​​ わかりません。Service を使用してリスト ビューを更新することを優先して、AsyncTask モデルを廃棄する必要があるかどうか、私は未定です。

だから、私の質問は次のとおりです。

1) アクティビティからローカル サービスを作成する方法を示す優れたチュートリアルはありますか?

チュートリアルでは、それらを通信させる方法を示す必要はありません。サービスはメイン アクティビティから分離できます。

2) #1 は、私が探している通知特典を提供してくれますか? (メインアプリが表示されていない場合でも通知が生成されます)

3) これと同じサービスを使用してリストビューを更新する必要がありますか?

このサービスは、基本的に AsyncTasks と同じクエリを作成し、結果に対して異なることを行うだけです。このアプリは、Service クエリを実行し、通知処理を行い、結果をアクティビティに渡す方が理にかなっているように見えますが、このようなことを行う方法を明確に示している適切なリソースは見つかりませんでした。

必要に応じて、必要なコードを追加したり、さらに説明したりできます。

0 投票する
3 に答える
7333 参照

android - バンドル内のカスタムオブジェクトのArrayListを送信する方法

サービスを使用して、x秒ごとにカスタムオブジェクト(MyObject)のArrayListを作成するアプリケーションがあります。次に、アクティビティでこのArrayListを取得します。

現在、サービスがデータのクエリを終了するたびに、アクティビティのハンドラーにメッセージを送信することを計画しています。ハンドラーへのメッセージにMyObjectsのArrayListを含める必要があります。

このArrayListをメッセージから取得するためにアクティビティでメソッドを構築すると、できないことに気づきました。

やってみたら

次に、私がそれを渡したメソッドは、ArrayListがそれを受け入れないことを期待していました。結果をキャストしようとした場合:

エラーが発生しました:Cannot cast from ArrayList<Parcelable> to ArrayList<MyObject>

MyObjectはParcelableを実装しており、アクティビティでサービスのメソッドを呼び出して取得することにより、サービスからアクティビティにArrayListを正常に送信しました。ただし、このデータについてサービスをポーリングすることをやめようとしています。

1)ハンドラーへのメッセージでバンドル内のArrayListを送信するにはどうすればよいですか?

2)アクティビティのデータを更新するために使用する必要がある別のモデルがありますか?表示される場合と表示されない場合がありますか?私は常に自分の活動のデータがサービスからの最新のものであることを望んでいます。

0 投票する
1 に答える
5617 参照

android - アクティビティが実行されている場合、サービスからの通知を抑制します

アプリケーションで連携するアクティビティとサービスがあります。サービスをリモートサービス(実装されたAIDL)として構成したので、アクティビティが表示されていない場合でも実行を継続します。

このサービスは、サーバーのデータをポーリングし、特定の基準が満たされたときにアラート通知を送信する役割を果たします。アクティビティが表示されているときに、サービスがこれらの通知を送信しないようにします。

サービスが特定のアクティビティのステータスを知る方法はありますか?特にそれに結びついている活動?

権限の問題をトラブルシューティングするためにマニフェストで更新:

Logcatで発生するエラー:

ブロードキャストを送信するタスク:

0 投票する
1 に答える
1584 参照

android - Android:サービス内のTimerTaskでハンドラーをインスタンス化する

サービスを使用してAPIを定期的に呼び出そうとしています。外部HTTP呼び出しを行うために使用する非同期クラスは、渡されるハンドラーに情報を返します。

以下の簡略化されたバージョンは、ハンドラーがインスタンス化された行で停止します(スタックトレースなし)。なぜですか?これを行うためのより良い方法はありますか?

0 投票する
2 に答える
3236 参照

android - ServiceConnectionメソッドが実行されないのはなぜですか?

これは私のサービスを呼び出すクラスです:

そしてこれはサービスです:

これは、AndroidManifest.xmlの2つのアクティビティです。

onServiceConnectedは実行されません。私は何か見落としてますか?

チケットリストアクティビティをアクティブ化したときの冗長モードでのLogCatの出力は次のとおりです。

0 投票する
6 に答える
9433 参照

android - Start Android TTS from Broadcast Receiver or Service

I'm trying to get TTS to run in the background. But, I never get any sound. I have a broadcast receiver which starts a service. I put my TTS code in both of those, but it never speaks. I know the method is being called (I put a breakpoint on it), but it still doesn't work.

これが私のログですが、TTS サービスについては何も含まれていないようです。

よろしくお願いします!

0 投票する
6 に答える
46596 参照

android - サービスのデバッグ

リモート インターフェイスを備えたサービスを作成し、PC の Eclipse AVD にインストールしました。サービスのメソッドを開始して呼び出すクライアント テスト ハーネスがあります。最初に、サービスのマニフェストが次のようになるように、コントロール クラスとアクティビティによってサービスをインストールしましたが、これを削除しました。

したがって、アクティビティ タグはありません。

Eclipse のデバッグ アイコンから起動すると、コンソールに apk がインストールされていることが示されますが (これはそうです)、サービスの動作は問題ありませんが、デバッグ スレッドとして表示されず、ブレークポイントもトリガーされません。クライアントが見ているように。関連付けられたクラスを持つアクティビティ タグでサービス タグをラップして起動すると、デバッグできます。

アクティビティにラップせずにサービスをデバッグすることはできますか?