我创建了一个小部件应用程序,在其中我使用 SQLite 数据库对象,该对象在用户启用他的小部件时被初始化。我将数据库对象声明为静态的,因为在其他情况下,它在调用方法并且我的应用程序崩溃null
之后变为静态。onReceive()
现在我mDatabase
在方法中使用对象onReceive()
,一切正常,除了:
- 将数据库的静态成员保留在小部件中是否正常,或者有更正确的方法可以做到这一点?
- 在使用应用程序一段时间后(一两天),我的应用程序崩溃了,看起来有些成员变成了 null (可能是
mDatabase
),我想如果你回答我的第一个问题,它也将是第二个回答 :)
代码示例
public class Widget extends AppWidgetProvider {
private static DatabaseObject mDatabase = null;
private static int mIndex = 0;
@Override
public void onEnabled(Context context) {
mDatabase = new DatabaseObject (context);
mDatabase.initialize("Some data");
}
@Override
public onReceive(Context context, Intent intent)
{
// Some code ....
mDatabase.getItemAtIndex(mIndex);
mIndex++;
}
};