0

私はalarm(repetalarm)とそれを処理するためにBroadcastReceiverを持っています。アラームはBroadcastReceiverクラスを参照して保留中の意図で私のactivityに設定されています。私は自分の活動にsqliteデータベースを持っています。私は私のアラームで私のsqliteデータベースを更新したいので、私は自分の活動からsqliteオブジェクトが必要です。それは私のアラームでも実行される私のasynctaskにも必要です。どうやってやるの?短い言葉で 、私は私のブロードキャストコンストラクタに自分のアクティビティオブジェクトを渡したいので、私は自分のsqliteインスタンスを使用することができます。インテントを持つオブジェクトを渡す方法

EDIT:自分のアクティビティ内にBroadcastRecieverを定義すると、MyActivity.thisという簡単なことがわかりました。それ以外の方法がありますか?

+0

あなたは 'broadcastreceiver'であまり仕事をすることはできません。 –

+0

は、自分のアクティビティ内のすべてのクラスを定義します。私は自分のアクティビティクラスオブジェクトにアクセスできますか? –

+0

はい、どのクラスからでもメソッドを呼び出すことができます。非更新およびUIコンポーネントを受け入れ、呼び出し側からアプリケーションコンテキストを渡す必要があります。 –

答えて

1

あなたは 'broadcastreceiver'であまり仕事をすることはできません。

これを行うには、サービスクラスを1つ作成し、 'broadcastreceiver'からサービスを呼び出す必要があります。データベースのコードをServiceに書き込んでください。

サービスでは、sqlite 'DataBaseオブジェクトをgetApplicationConext()まで作成できます。

また、サービス内では、作業のために別スレッドを作成するか、AsyncTaskを使用してデータベースベースの操作を行う必要があります。

+0

リピートアラームが必要なので、私はbroadcastreceiver not serviceが必要です。 –

+1

はい、あなたは正しいです。しかし、放送受信者はあなたの仕事を行う時間が限られています。最高のアプローチは、放送受信機からサービスを呼び出し、サービス内で作業することです。 –

+0

サービスは、 –

関連する問題