2

間のデータベース:シェア私はアプリを開発したアプリやウィジェット

のsqliteのDBのレコードを表示し、更新するためのsqliteのDB
  • でいくつかのデータいくつかのビューを挿入するためのボタンを

    今私はちょうどアプリのボタンアクションを実行する単純なウィジェットを書いてみたいです:いくつかのデータを同じsqliteデータベースに挿入してください。 目的は、アプリケーションを開くことなく速い挿入のためのウィジェットを使用することです、私はより複雑な操作が必要なときにアプリ。

    1. これは正しい方法ですか?
    2. アプリ(実際の所有者)とウィジェットの間で同じdbを共有することは可能ですか?どうやって?
    3. 私はcontentProviderが必要ですか?

    おかげ

  • 答えて

    3

    アプリ(実際の所有者)とウィジェットの間で同じDBを共有することが可能ですか?

    はい。

    どのようにですか?

    通常、アプリウィジェットはアプリの一部です。あなたは、それが1つのアプリなので、アクティビティやフラグメントなどとは違って使います。

    AppWidgetProviderのように、onUpdate()のようなメソッドがメインのアプリケーションスレッドで呼び出されることに注意してください。あるアクティビティでは、ベアスレッドを使用してデータベースI/Oを実行することができます。これは、アプリがフォアグラウンドにあるため、正常です。しかし、アプリウィジェットのアップデートでは、アプリがバックグラウンドにある可能性があり、プロセスが長く続くことはありません。 IntentServiceを使用してデータベースI/O(onUpdate()で開始)を実行し、アプリウィジェットのコンテンツを更新します。

    私はcontentProviderが必要ですか?

    アプリウィジェットを他のアプリコードとは別のアプリにしたい場合にのみ、通常、それはユーザーが2つのアプリ(メインアプリとアプリウィジェットアプリ)をインストールする必要があるので、良い考えではありません。

    +0

    私はAndroid開発にはとても新しいので、もっと詳しくお聞きします...私のアプリの一部であるウィジェットをどのように開発できますか?ウィジェットのボタンのために私はコールバックメソッドを設定することができますが、それはメインアプリにあります – acca2o

    +0

    @ acca2o:[アプリケーションウィジェットの作成に関するドキュメント](http://developer.android.com/guide /topics/appwidgets/index.html)。 – CommonsWare

    +0

    OK、ガイドを読んでいます。ちょうどもう1つの質問...メインアプリとやりとりするボタンを備えたアプリウィジェットを開発した場合、メインアプリが読み込まれ、バックグラウンドで動作していることを意味しますか?いつも?この場合、dbを共有し、バックグラウンドで作業するアプリは必要ないウィジェットが優れていると思います。そうですか? – acca2o

    関連する問題