1

私のアプリケーションは標準の Android の連絡先で動作するため、次の権限が my にありますAndroidManifest.xml

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

残念ながら、標準の連絡先アプリケーション (設定 -> アプリケーション -> アプリケーションの管理 -> すべて -> 連絡先 -> データの消去) のユーザー データを消去すると、アプリケーションcom.example.dialerが再起動します。

04-05 15:39:21.161 I/InstalledAppDetails( 9019): Clearing user data for package : com.android.providers.contacts
04-05 15:39:21.181 I/Process (  252): Sending signal. PID: 8774 SIG: 9
04-05 15:39:21.181 I/Process (  252): Sending signal. PID: 8761 SIG: 9
04-05 15:39:21.181 I/Process (  252): Sending signal. PID: 8368 SIG: 9
04-05 15:39:21.181 I/ActivityManager(  252): Force stopping package com.android.providers.contacts uid=10017
04-05 15:39:21.181 I/ActivityManager(  252): Kill com.sonyericsson.android.socialphonebook (pid 8774): provider com.android.providers.contacts.SemcContactsProvider2 in dying process android.process.acore
04-05 15:39:21.181 I/ActivityManager(  252): Kill com.example.dialer (pid 8761): provider com.android.providers.contacts.SemcCallLogProvider in dying process android.process.acore
04-05 15:39:21.231 D/dalvikvm( 9019): GC_CONCURRENT freed 1572K, 52% free 3798K/7815K, external 4576K/5694K, paused 1ms+4ms
04-05 15:39:21.251 E/InputDispatcher(  252): channel '2b440330 com.example.dialer/com.example.dialer.Dialer (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
04-05 15:39:21.251 E/InputDispatcher(  252): channel '2b440330 com.example.dialer/com.example.dialer.Dialer (server)' ~ Channel is unrecoverably broken and will be disposed!
04-05 15:39:21.251 I/WindowManager(  252): WINDOW DIED Window{2b440330 com.example.dialer/com.example.dialer.Dialer paused=false}
04-05 15:39:21.261 I/ActivityManager(  252): Process com.example.dialer (pid 8761) has died.
04-05 15:39:21.261 W/ActivityManager(  252): Scheduling restart of crashed service com.example.dialer/.ContactsService in 5000ms
04-05 15:39:21.281 I/InstalledAppDetails( 9019): Cleared user data for package : com.android.providers.contacts

これを防ぎ、代わりにアプリの状態を更新することはできますか?

4

1 に答える 1

0

私の知る限り、アプリに CONTACT 関連の権限が含まれている場合、アプリは連絡先アプリに何らかの形で関連付けられており、それに依存していることを意味します。

ユーザーが連絡先アプリのデータを消去すると、連絡先パッケージ全体がシステムによって再起動されます (ログで確認できます)。これは、CONTACTS 関連の権限を持つすべてのアプリケーションが再起動されることを意味します。

だから、これを止めることはできないと思います。

于 2012-04-10T13:10:40.623 に答える