6

ログインロジックを実装するアプリケーションがいくつかあります。1 つのアプリケーションが some_account@gmail.com に記録されているとしましょう。これらのアプリケーションはすべて some_account@gmail.com に記録されます。ログアウトした場合、すべてのアプリケーションで同じことを行います。しかし、私はすぐに同じことをしたくありません。アプリケーション自体はそれを処理できますが、他のアプリケーションがすでにログインしているかどうかを知る必要があり、ログインしている場合は、このアプリと同じメール アドレスでログインするだけです。そのため、他のアプリがログに記録されているメール アドレスを知る必要があります。1 つの文字列を格納する必要があります。

最初に について考えてSharedPreferencesいましたが、他のオプションがあるため、これはかなり悪い考えです (そして、stackoverflow はプロセス間の SharedPreferences の使用の悪い例でいっぱいです)。それにもかかわらず、私はこれを試しました。sharedUserIdすべてのアプリに設定し、呼び出しcreatePackageContextて、最終的に設定を取得しようとします。しかし、私はそれから読むことができません。使用したとしても、常にnullにContext.Mode_WORLD_READABLEなりました-ちなみに、これは非推奨です。

わかりました、学んだ教訓はそのために使用しないでくださいSharedPreferences(私は思います)。しかし、今必要なのは、単一の文字列を他のアプリで読み取れる場所に保存することだけです。

多分私は使用する必要がありますContentProviderか?しかし、真剣に... 1つの弦のために?他のオプションは何ですか?Service非常に単純な操作の場合、 orは本当に必要ないと確信していますがContentProvider、実際にはその方法がわかりません。

4

1 に答える 1

0

放送受信機を使用できます。アプリケーション A でデータが変更されたときに、アプリケーション B にブロードキャストを送信するだけで済みます。その後、アプリケーション B はバックグラウンドでデータを処理し、必要に応じて保存できます。少しやり過ぎかもしれませんし、もっと良い方法があるかもしれませんが、うまくいくでしょう。

于 2013-10-07T20:49:53.813 に答える