2017-07-12 19 views
0

私は現在、ユーザーがログインする必要があるウィジェットを開発しています。ユーザーが最初にウィジェットを追加してログインしていないときは、それらをログインできるようにログインアクティビティに持っていきます。 ウィジェットが自動更新されたときにそれをやりたいと思う(ホーム画面をブラウズしているときにアプリをランダムに起動させるのは非常に面倒なことだろう)。Android Widgets:最初のアップデートと自動アップデートを区別しますか?

更新コードは現在onUpdate()にありますが、ウィジェットが最初に追加されたときに発生する更新と定期的に更新される更新を区別する方法を見つけることができませんでした。これを行う方法はありますか?

は私が作るしようとしている、要約すると以下: - 初期アップデートをユーザーがウィジェット追加したとき:オープンログイン活動 - その後の定期的な更新:開けませんログイン活動

注操作を行います。私は思いますonEnabled()を避けたいのは、FIRSTウィジェットが追加されたときだけ呼び出されるからです。私は新しいウィジェットが追加されるたびに自分のコードを実行したいと思います。

答えて

0

ウィジェットのインスタンスを1つだけ探している場合は、この問題を解決するために、共有設定のブール値を使用できます。 onEnabled

- クリアブール

にonUpdate - ブール値に設定されていない場合 - >は、最初の時間を意味します(あなたの仕事をしてブール値を設定) ブール値が設定されている場合 - >は、通常のウィジェットの更新を意味します。

オプションの周りの仕事にあなたが複数のウィジェットのインスタンスに対処する必要がある場合:

あなたが上記の要件を達成するために必要がある場合は、あなたがあなた自身によって間隔で自動更新を処理する必要があります。

つまり、すべてのonUpdate呼び出しは、作成したインテントからの呼び出しでなければなりません。つまり、

  1. アラームマネージャを使用して、ウィジェットのonUpdate機能をトリガーします。バンドル値を更新呼び出しを示すインテントに追加します。
  2. すべてのウィジェットのインタラクションインテントには、アップデートコールを行うためのバンドル値が含まれている必要があります。 onUpdate方法で
  3. 、そのそこより上と場合に述べた同じバンドル値、それ以外は通常の更新BINGOをチェック... :)
+0

私はこれが動作すると思います!ウィジェットごとに別々の要素が必要ですが、ウィジェットIDをユニークにするためにキーにウィジェットIDを簡単に追加できます。ありがとう! –

関連する問題