Я хотел бы использовать 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 mLifecycleRegistry;
}
Вот мой файл градиента:
implementation 'androidx.room:room-runtime:2.0.0-alpha1'
annotationProcessor 'androidx.room:room-compiler:2.0.0-alpha1'
implementation 'com.google.android.material:material:1.0.0-alpha3'
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0.0-alpha1'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
А вот и мой Дао:
@Dao
public interface AlarmDao {
@Query("SELECT * FROM alarm")
LiveData<List<Alarm>> getAllAlarm();
@Insert
void insert(Alarm... alarms);
@Update
void update(Alarm... alarms);
@Delete
void delete(Alarm... alarms);
}
Я пробовал все предложения здесь, включая мое, но я не могу понять, в чем проблема в этом случае.
Изменить: добавлен код
androidx
так наверное 28 - person EpicPandaForce   schedule 22.06.2018