私はAndroidアプリを開発中です。私のアプリケーションでは、私はアプリケーションが閉じられたときにデータベースからデータを削除しています。だから、私は放送受信機onDestroyを開き、受信機の中のデータを削除する。私はActivity内でデータベースヘルパーのdeleteメソッドを呼び出すと動作しています。しかし、私は受信機の中でそれを呼び出すとき、それは動作していません。データベースからのデータを削除して、Androidのブロードキャスト受信機で動作しない
これは私の受信機である:
public class InspectDataReceiver extends BroadcastReceiver {
private DatabaseHelper dbHelper;
@Override
public void onReceive(final Context context, Intent intent) {
}
public void refreshData(final Context context,String type)
{
dbHelper = new DatabaseHelper(context);
dbHelper.deleteCategories();
} }
これは、データベースヘルパーのdeleteメソッドです:
public void deleteCategories()
{
db = getWritableDatabase();
db.delete(CATEGORY_TABLE,null,null);
db.close();
}
これは私が私の活動のonDestroyイベントにデータを削除する方法です:
@Override
protected void onDestroy() {
super.onDestroy();
updateCacheData();
}
private void updateCacheData()
{
InspectDataReceiver receiver = new InspectDataReceiver();
receiver.refreshData(getBaseContext(),getResources().getString(R.string.data_receiver_type_category));
}
しかし、データは削除されません。それはエラーをスローしていません。アクティビティ内で削除するとき。削除メソッドが機能しています。どうすれば修正できますか?
しかし、私は受信機を開いたときどのように活動のコンテキストを渡すことができますか? –
これはうまくいきません。 OPは実際には 'BroadcastReceiver'クラスとして' BroadcastReceiver'を使用していません。つまり、実際には放送されていません。彼らは何も拡張していない普通の古いクラスで、今やっていることを正確に行うことができます。 –
@MikeM。 OPは受信者のインスタンスを作成します。 – Yazan