0
我寧願在編寫Android應用程序時使用初學者。現在我開始編程,它讀取一個網頁並將其中的一些數據保存到數據庫/表中。 我想補充說,該應用程序需要在後臺服務的網站,並將其與數據庫進行比較。那麼它應該彈出一個通知在你的方便,如果事情已經改變。問題是,即時通訊已經在MainActivity中使用DatabaseHelper類創建數據庫,所以當我想要在服務類中添加一些數據庫時,我需要MainActivity意圖,但我不知道如何。在後臺服務中寫入數據庫 - Android Studio/Java
相關的代碼在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)");
}
而這就是目前backgroundservice類:
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);
}
你爲什麼認爲你需要MainActivity意圖? – Juan
首先,我認爲您需要將您的創建查詢更改爲: 「CREATE TABLE IF NOT EXISTS ....」 –
之後,我找不到您將當前數據庫與新傳入數據進行比較的位置 –