0

連絡先に ContentObserver を使用しています。しかし、ここで私の問題は、少なくともアプリケーションを起動する必要がある場合です。そうしないと、通知の変更を受け取ることができません。このような私のコード

ContactsContentObserver cco = new ContactsContentObserver(handler);

    ContentResolver contentResolver = getContentResolver();

    contentResolver.registerContentObserver(RawContacts.CONTENT_URI,
    true, cco);

            }

private class ContactsContentObserver extends ContentObserver 
{
 public ContactsContentObserver(Handler h) 
 {
      super(h);
    }

    public void onChange(boolean selfChange) 
    {
       System.out.println("##########SOMEBODAY CHANGED ANYTHING AT THE CONTACTS");
       Toast.makeText(getApplication(),"####Updated####",Toast.LENGTH_LONG).show();


       }

.... 前もって感謝します。

4

2 に答える 2

0

Android で UI アプリケーションを開発している場合、コードや機能は、アプリケーションを起動して初めて機能します。デバイスのバックグラウンドで実行されるサービスまたは Beckgroud プロセスを開発するためのより良いオプションです。また、起動する必要さえありません。Android のオンスクリーン キーボードの実例をご覧いただけます。これは、ある種のイベントまたは何かを待機し、それに基づいてポップアップする一種のアプリケーションです。サービスを開発してみて、何が起こるか見てみましょう....

于 2010-05-05T05:28:20.350 に答える
0

ContentObserver連絡先で何かが変更されたときに自動的に実行することを望んでいると思います。問題は、そのリスナーを登録するコードを呼び出す必要があることです。おそらくできることは、デバイスの起動が終了したときに開始し、登録してから終了するサービスを作成することですContentObserverContentProviderフレームワークがコードを自動的に呼び出すため、サービスを継続的に実行する必要はありません。この投稿BOOT_COMPLETED_ACTIONに従ってインテントを受け取るために登録を検討してください。

于 2010-05-05T07:09:34.857 に答える