在backgroundservice中写入数据库 - Android Studio / Java

时间:2017-07-16 13:59:32

标签: java android

我是编程Android应用程序的初学者。现在我开始编程一个,它读取一个网页并将其中的一些数据保存到数据库/表中。 我想补充一点,该应用程序将该网站置于后台服务中并将其与数据库进行比较。如果有什么变化的话,它应该弹出一个方便的通知。问题是,我已经在MainActivity中使用DatabaseHelper类创建了数据库,所以当我想在服务类中添加一些数据库时,我想我需要MainActivity意图,但我不知道如何。

MainActivity中的相关代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
  myDb = new DatabaseHelper(this);

  AlarmManager alarmManager = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE);
  Intent startServiceIntent = new Intent(MainActivity.this,Hintergrundservice.class);
  PendingIntent startServicePendingIntent = PendingIntent.getService(MainActivity.this, 0, startServiceIntent, 0);
  c.setTimeInMillis(System.currentTimeMillis()+1000*10);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),1000*10,startServicePendingIntent);
}

相关的DatabaseHelper类:

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table Vertretungsplan (ID INTEGER PRIMARY KEY AUTOINCREMENT,DATUM TEXT, TAG TEXT, KLASSE TEXT, STUNDE TEXT, LEHRER TEXT, FACH TEXT, RAUM TEXT, LEHRERVON TEXT, FACHALT TEXT)");
}

那就是背景服务类:

public int onStartCommand(Intent intent, int flags, int startId) {

    Toast.makeText(getApplicationContext(), "Hintergrundprozess wurde ausgeführt!", Toast.LENGTH_SHORT).show();
    Log.d("MyActivity","Hintergrundprozess");
    //write into Database
    stopSelf();

    return super.onStartCommand(intent, flags, startId);
}

1 个答案:

答案 0 :(得分:0)

您应该可以在服务中创建DatabaseHelper的第二个实例。