小编gho*_*osh的帖子

Activity 无法转换为 LifecycleOwner

我想将 Room 与 LiveData 一起使用,并且在其他项目中我已经使用过它,但是在这个项目中,我无法让它工作。当我尝试观察实时数据时,它无法将我的活动转换为生命周期活动,但是,我正在使用 AppCompatActivity,我什至尝试覆盖 getLifecycle 方法(在以前的项目中对我有用)。我什至尝试过 AndroidX 但仍然是同样的问题:(

这是我的活动(部分):

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleRegistry;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;

private LifecycleRegistry mLifecycleRegistry;

public class actMain extends AppCompatActivity  {

 @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mLifecycleRegistry = new LifecycleRegistry(this);
    mLifecycleRegistry.markState(Lifecycle.State.CREATED);
}
  @Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
    //Firebase
    db = FirebaseFirestore.getInstance();

    mLifecycleRegistry.markState(Lifecycle.State.STARTED);

    alarmViewModel = ViewModelProviders.of(this).get(AlarmViewModel.class);

    alarmViewModel.getAlarmList().observe(actMain.class, new 
    Observer<List<Alarm>>() {
        @Override
        public void onChanged(@Nullable List<Alarm> alarms) {

        }
    });
}
@NonNull
@Override
public Lifecycle getLifecycle() {
    return …
Run Code Online (Sandbox Code Playgroud)

android activity-lifecycle android-room android-livedata

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

Android Room - 如何在每次运行应用程序时重置自动生成的表主键

我正在使用 Room 来保存数据。
我有一个实体,它有一个模拟票证系统的自动生成(自动生成)主键。 在每个应用程序运行时,我需要这个键从 0 开始

实体:

@Entity
public class SequenceAction {

    @PrimaryKey(autoGenerate = true)
    private Integer sequenceId;
    private String actionType;
    private String extraInfo;
    //getters & setters
}
Run Code Online (Sandbox Code Playgroud)

初始化:

// init sequenceAction object
// run with executor(sequenceId is automatically set on insert to table):
AppDatabase.getInstance(getContext()).sequenceActionDao().save(sequenceAction);
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情:

AppDatabase.getInstance(getApplicationContext()).clearAllTables(); 过去常常在退出时清除表,但这不会重置键起始索引,而是从上次运行时停止的位置开始。

我还没有找到使用 Room 执行此操作的方法,因此我正在尝试将 SimpleSQLiteQuery 传递给 Dao 中的 RawQuery 方法:

//Dao
@RawQuery()
Integer init(SimpleSQLiteQuery query);

//Passed query
new SimpleSQLiteQuery("...query...");
Run Code Online (Sandbox Code Playgroud)

我试过下一个查询:

  1. "ALTER TABLE SequenceAction AUTO_INCREMENT = 0"

我收到一个错误(我用“AUTOINCREMENT”试过这个,同样的错误):

android.database.sqlite.SQLiteException:在“AUTO_INCREMENT”附近:语法错误(代码 …

android auto-increment android-sqlite android-room

5
推荐指数
1
解决办法
8356
查看次数

Drools 7.4.1 kieservices.factory.get()返回null

我尝试将Drools 7.4.1集成到tomcat中的Webapp中。

当我在代码中调用以下语句来获取KieService时,我会得到null

KieServices ks = KieServices.Factory.get();
Run Code Online (Sandbox Code Playgroud)

如果从测试方法中调用相同的方法,则可以。

有人可以帮忙吗?

drools kie

4
推荐指数
3
解决办法
2206
查看次数

我可以使用 Strapi 和 GraphQL 创建多个相同类型的元素吗?

我可以使用 Strapi 和 GraphQL 创建多个相同类型的元素吗?例如 -

createMultipleFoo mutation(data: [
    nameOfFoo: "ooaoaoa",
    weightOfFoo: "aododo"
    ], ....)
Run Code Online (Sandbox Code Playgroud)

javascript apollo graphql strapi

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