問題タブ [contentobserver]

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 投票する
2 に答える
2062 参照

android - マニフェストファイルでcontentObserverを使用する

すべての着信、発信、不在着信の通話ログを取得したいAndroidアプリを作成しています。このためにコンテンツオブザーバーを使用していますが、マニフェストファイルでコンテンツオブザーバーを使用する方法がわかりません。誰かがこれを行う方法を私に助けることができます...ありがとう

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

android - Broadcasts、ContentProviders、および ContentReciever のベスト プラクティス

わかりましたので、前もって私は Android が初めてだと言います。私はいくつかの小さなプロジェクトを作成し、いくつかのことで遊んで、たくさんの読書をしました。だからここに私が達成しようとしているタスクがあります:

Wi-Fi ネットワークを介して他の Android デバイスと情報を送受信できる、電話のフォアグラウンドで実行されるリモート サービスがあります。このサービスを使用するために構築されたスマートフォンの APK には、複数の SQLite DB が含まれています。これらの APK がコンテンツ プロバイダーをサービスに登録して、サービスが受信したデータをどこに置くかを常に認識できるようにしたい (私はこのタスクを完了しました)。データが入ってきたら、それがどこに属しているかを特定し、適切な DB に配置します (ここでは問題ありません)。では、新しいデータが受信されたことを正しいアクティビティに通知する最善の方法は何でしょうか。自分のサービスが呼び出すブロードキャスト レシーバーを登録する必要がありますか? APK が OS によって強制終了された場合、ブロードキャスト レシーバーは機能しますか? 正しいアクティビティが読み込まれたら、コンテンツ オブザーバーを使用して新しいデータを表示しますか? IntentServices を使用する理由

質問が多くてすみません。私が言ったように、私は速く学んでいますが、Android の SKD は大規模であり、非常に多くの優れた機能があります。ベスト プラクティスに基づいて物事を正しく考え、これを非常に簡単に保守および拡張できるようにしたいと考えています。私が得ることができる助けやアドバイスをありがとう。

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

android - アンドロイドブラウザで追加/更新/削除されたブックマークを観察する

Content-Observerを使用して、履歴とブックマークの両方に関する情報を格納するAndroid-Boroswersbrowser.dbを監視しています。私の要件は、ブックマークが追加/更新/削除された場合にのみ通知を受け取り、ブックマークリストを更新することです。しかし、新しいページがブラウザに読み込まれたとしても、リスナーは解雇されます(これは履歴に含まれるため)。これを解決する方法はありますか?または、単一の列の変化を観察します。発生するすべてのイベントでリストを不必要に更新したくありません。よろしくお願いします。

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

android - Android メモリ不足の例外と ContentResolver.registerContentObserver

私の活動では、 に約 10ContentObservers人登録していContentResolver (registerContentObserver)ます。で行いonCreate()ます。

横向きと縦向きを切り替えると、onCreate()が何度も呼び出されます (そのようにしたい - レイアウトを変更する必要があります) が、数回試行すると、アプリがメモリ不足になり、クラッシュします。

これらのオブザーバーはクラス メンバーではないため、 のスコープ内に存在しonCreate()ます。

誰かアイデアはありますか?

(すべての登録にコメントすると、クラッシュはありません)。

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

android - contentobserver によるスリープ サービス

ContentObserver (C) をホストするサービス (S) を作成しました。C は、一部のデータを追跡し、データベースに加えられた変更をログに記録します (D)。

S には、時間間隔で D の内容をファイルにダンプするタイマーもあります。

私は自分の電話でサービスを実行していますが、しばらくの間 (数時間程度) は問題ないようです。その後、突然、データに加えられた変更の記録を停止し、ファイルへのダンプを停止します。データを変更して (C で onChange を引き起こします)、電話をブラウジングしてデバイスを起動させようとしましたが、何も起こりませんでした。サービスはまだ非アクティブです。S はまだ実行中で、ラップトップに接続してもログにエラーは表示されません。

私の推測では、サービスはスリープ状態です (CPU スライスを取得していません)。ウェイクロックについて少し読んだことがありますが、電話を常に強制的に起動させたくありません。(). 別の方法は、T 分ごとに C の作業を実行する繰り返しアラームを作成することです (ポーリング)。ユーザーは更新の間にデータを変更 (特に削除) できるため、ContentObservers のアイデアがより気に入っています。ContentObserver を使用すると、時間間隔のスナップショットだけでなく、すべての変更を取得できます。

定期的にサービスを起動する方法についてのアイデアはありますか?

よろしくフレデリック

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

android - コンテンツ プロバイダーとコンテンツ オブザーバーの同期

SQLite DB と、DB の URI に登録された Content Observer を含むサービスを実行しています。Content Observer は、SQLiteOpenHelper を使用して DB からデータをクエリします。そのため、新しいデータが Content Provider を介して他のアプリケーションからサービス DB に入れられると、変更されたカーソルが観察され、処理するデータを照会します。問題は、他のアプリケーションから速いペースでデータを挿入すると、コンテンツ オブザーバーとコンテンツ プロバイダーの両方が DB を開くことになり、データベース ロックで SQLite エラーが発生することです。

getReadable および getWritable メソッドを使用し、使用後に DB とカーソルを閉じています。CP と CO が同期していないようです。この問題を解決するにはどうすればよいですか?

更新 Motorola Atrix でこれをテストすると、問題はありません。Samsung Galaxy Tab でテストすると、問題が発生します。Atrix では、catlog のデバッグ タグから、CO と CP の両方で DB が同時に開いているように見えますが、Galaxy のような問題はまだありません。ギャラクシーは私にこのエラーを与えます:

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

android - SMS 送信オブザーバーが 3 回実行される

送信されたメッセージのオブザーバーを使用して、次のサービスを定義しました。問題は、メッセージを送信するときに contentobserver の onChange メソッドが 3 回呼び出されているように感じます。¿誰かが理由を教えてくれますか?

ありがとう

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

android - 連絡先の変更(追加、削除、変更)を受け取る

各連絡先のタイムスタンプはありませんか?

連絡先の変更 (追加、削除、または変更) について通知を受ける必要があります。を実装しましたContentObserverが、この方法を使用すると、連絡先に変更が発生した場合にのみ通知を受け取ることができますが、どの連絡先が変更されたのかわかりません! 助言がありますか?

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

android - コンテンツオブザーバーに挿入された行の URI を取得するには?

私のアプリケーションでは、別のクラスからデータベースに値を挿入しています。これにより、挿入された行の ID が得られます。UI にオブザーバーを登録しました。行が挿入されるたびに、UI コンテンツ オブザーバーが呼び出されます。両方のクラスはまったく異なるため、挿入された行 ID を取得するのが難しいと感じています。それに応じて UI を更新できるように、コンテンツ オブザーバーでこの行 ID を取得する方法はありますか?

PS context.getContentResolver().notifyChange(uri, null); UIで(影響を受けた変更を更新するために)影響を与えたいので、私の解決策ではありません。

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

android - Contacts ContentObserver called randomly

i am using a ContentObserver to listen for changes in the contacts database. now i realized that the onChange() method gets randomly called, even if i have not made any changes to the contacts. i suspect this is somehow related to the automatic contact syncing (even though there are no real changes to the contacts at this point).

is there a possibility to get notified only if there are real changes in the contacts, made by the user?

thx simon