gpt4 book ai didi

android - 在 Android 中为 AlarmManager 使用 SQL 数据库

转载 作者:行者123 更新时间:2023-11-30 01:25:35 25 4
gpt4 key购买 nike

我最近开始了 Android 编程,很抱歉我提出了蹩脚的问题。我一直在尝试在我的 AlamManager 类中使用我的数据库类方法来保存警报,但我还没有弄清楚如何。我什至试图在网上找到一个有效的例子,但我也找不到。

问题是当我将我的数据库类的最后两个方法添加到我的 MainActivity 类时,警报没有响起。

如有任何帮助,我们将不胜感激。

所以,这是我的代码:

主 Activity .java

public class MainActivity extends AppCompatActivity {

DatabaseHandler MyDatabase;
EditText editText1, editText2;
Button button1;
int mHour, mMinute;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyDatabase = new DatabaseHandler(this);

editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
button1 = (Button) findViewById(R.id.button1);

editText2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onOpenTimePickerDialog(false);
}
});

button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, mHour);
calendar.set(Calendar.MINUTE, mMinute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);

Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
PendingIntent pIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pIntent);
}
});
}

private void onOpenTimePickerDialog(boolean is24r) {
Calendar calendar = Calendar.getInstance();
TimePickerDialog timePickerDialog = new TimePickerDialog(
MainActivity.this,
onTimeSetListener,
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
is24r);

timePickerDialog.setTitle("set time");
timePickerDialog.show();
}

TimePickerDialog.OnTimeSetListener onTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
}
};
}

数据库处理器.java

public class DatabaseHandler extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;

private static final String DATABASE_NAME = "friends";

private static final String TABLE_NAME = "friends_table";

public static final String COL_1 = "ID";
public static final String COL_2 = "SUBJECT";
public static final String COL_3 = "TIME";


public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}


public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, SUBJECT TEXT, TIME INTEGER) ");
}


//to upgrade the database
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}


public boolean addData(String subject, String time) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COL_2, subject);
values.put(COL_3, time);
long result = db.insert(TABLE_NAME, null, values);
if (result == -1) {
return false;
} else {
return true;
}
} // The first method I want to use in my MainActivity class

public Cursor returnData() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from " + TABLE_NAME, null);
return cursor;
} // The secondmethod I want to use in my MainActivity class

}

最佳答案

请查看this tutorial out,它教导了如何创建一个也使用了 SQLite 数据库的提醒。

关于android - 在 Android 中为 AlarmManager 使用 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36468836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com