アプリ(実際の所有者)とウィジェットの間で同じDBを共有することが可能ですか?
はい。
どのようにですか?
通常、アプリウィジェットはアプリの一部です。あなたは、それが1つのアプリなので、アクティビティやフラグメントなどとは違って使います。
AppWidgetProvider
のように、onUpdate()
のようなメソッドがメインのアプリケーションスレッドで呼び出されることに注意してください。あるアクティビティでは、ベアスレッドを使用してデータベースI/Oを実行することができます。これは、アプリがフォアグラウンドにあるため、正常です。しかし、アプリウィジェットのアップデートでは、アプリがバックグラウンドにある可能性があり、プロセスが長く続くことはありません。 IntentService
を使用してデータベースI/O(onUpdate()
で開始)を実行し、アプリウィジェットのコンテンツを更新します。
私はcontentProviderが必要ですか?
アプリウィジェットを他のアプリコードとは別のアプリにしたい場合にのみ、通常、それはユーザーが2つのアプリ(メインアプリとアプリウィジェットアプリ)をインストールする必要があるので、良い考えではありません。
私はAndroid開発にはとても新しいので、もっと詳しくお聞きします...私のアプリの一部であるウィジェットをどのように開発できますか?ウィジェットのボタンのために私はコールバックメソッドを設定することができますが、それはメインアプリにあります – acca2o
@ acca2o:[アプリケーションウィジェットの作成に関するドキュメント](http://developer.android.com/guide /topics/appwidgets/index.html)。 – CommonsWare
OK、ガイドを読んでいます。ちょうどもう1つの質問...メインアプリとやりとりするボタンを備えたアプリウィジェットを開発した場合、メインアプリが読み込まれ、バックグラウンドで動作していることを意味しますか?いつも?この場合、dbを共有し、バックグラウンドで作業するアプリは必要ないウィジェットが優れていると思います。そうですか? – acca2o