小编Teo*_*dor的帖子

SQLiteOpenHelper同步

所以我想出了一些想法,我想知道它是否可以实现.

假设我有多个表(数据库模型),每个表都由某个类表示.我不会使用单一模式和open helper,所以我创建了一个简单的类来提供数据库的单个实例.我我们的想法是,只要所有表都引用SQLiteDatabase(由open helper返回),它们都将使用相同的数据库实例,并且可能不需要将工作与数据库同步,因为open helper执行此操作.当最后一个表完成它的工作GC将收集打开的帮助器(因为最后一个引用将是弱引用) - >调用finalize()并在此方法期间关闭db以防止来自OS的任何警告.我的问题是:这可以工作吗?它会自动关闭数据库,它会泄漏还是抛出一些异常?

这是我的班级:

public class DatabaseHelper {

private static WeakReference<SomeCustomOpenHelper> sDBOpenHelper;

private void notifyDBCreate(SQLiteDatabase db) {
    for (DBTable table : mTables) {
        table.onDBCreate(db);
    }
}

private void notifyDBUpgrade(SQLiteDatabase db) {
    for (DBTable table : mTables) {
        table.onDBUpgrade(db);
    }
}

public SQLiteDatabase getDatabase(boolean readOnly) {
    SomeCustomOpenHelper dbHelper = sDBOpenHelper.get();
    if (dbHelper == null) {
        dbHelper = new SomeCustomOpenHelper(context, name, factory, version, new DatabaseEventsCallback());
        sDBOpenHelper = new WeakReference<SomeCustomOpenHelper>(dbHelper);
    }
    if (readOnly) {
        return dbHelper.getReadableDatabase();
    } else { …
Run Code Online (Sandbox Code Playgroud)

android synchronization weak-references sqliteopenhelper

9
推荐指数
1
解决办法
2134
查看次数

跨平台移动订阅(Android + iOS)

是否可以使用本机API进行跨平台订阅并在自己的后端管理这些订阅?

示例:在iOS设备上订阅iOS更改设备并降级(取消)订阅(计划).

例如,Spotify通过PayPal和其他付款方式进行跨平台订阅,但我不确定我们的应用是否会被拒绝,考虑到这两个平台的应用内指南.

android paypal spotify in-app-purchase ios

8
推荐指数
1
解决办法
1422
查看次数

访问库项目中定义的样式资源

我的图书馆项目中有这样的东西。我想在我的具体项目中使用该自定义主题,但我无法引用它。我怎样才能做到这一点?

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<style name="MenuDialog" parent="android:Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowCloseOnTouchOutside">false</item>
    <item name="android:windowAnimationStyle">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
1
解决办法
1285
查看次数