Android Room: सरल SELECT क्वेरी के दौरान "Cannot access database on the main thread" त्रुटि को कैसे ठीक करें?
सभी को नमस्कार! मैं Kotlin में Android डेवलपमेंट में नौसिखिया हूँ और स्थानीय डेटाबेस के लिए Room का उपयोग कर रहा हूँ। मेरे पास एक सरल User entity और DAO है जिसमें getAllUsers() method है जो सभी उपयोगकर्ताओं की सूची लौटाता है। मैं इस method को Activity से कॉल करता हूँ ताकि RecyclerView में डेटा दिखा सकूँ। लेकिन ऐप इस त्रुटि के साथ क्रैश हो जाता है:
java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time.
यहाँ मेरा कोड है:
// Entity
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val email: String
)
// DAO
@Dao
interface UserDao {
@Query("SELECT * FROM users")
suspend fun getAllUsers(): List<User>
}
// Database
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
// Activity
class MainActivity : AppCompatActivity() {