0

我有一个活动和一个服务,我想从服务中调用一个位于活动中的方法。

方法 ( deleteItem) 使用通知服务取消一些通知,但正因为如此,我得到了错误:

E/AndroidRuntime(13172): java.lang.IllegalStateException: System services not available to Activities before onCreate()

主要活动:

public boolean deleteItem(SQLiteDatabase db, long id) {
    if(db.delete(DbHelper.TABLE_NAME, "`_id` = " + id, null) == 1) {
            Log.i(TAG, "Item #"+id + " was deleted successfully!");

            ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel((int) id);

            return true;
        }
    return false;
}

服务:

@Override
protected void onHandleIntent(Intent intent) {
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    id = intent.getIntExtra("id", -1);
    MainActivity main = new MainActivity();
    main.deleteItem(db, id, false);

}

我该如何解决这个错误?

4

1 回答 1

0
MainActivity main = new MainActivity();

实例化活动是 android 框架的工作。请不要这样做。

从服务本身调用该方法。为什么它甚至需要在活动中?

于 2013-03-31T11:27:11.770 回答