我有一个内容提供商,提供来自用户帐户的数据。如果用户没有登录,我想在应用程序请求来自内容提供商的数据时显示登录对话框。可能吗?或者我这样做是错的?我想另一种解决方案是抛出异常或从内容提供者返回错误指示数据,让应用程序处理它,但我觉得第一个解决方案是最好的,因为应用程序不必担心用户登录或登录所需的用户界面。
答案 0 :(得分:0)
思考服务。但是,通常不建议从服务开始活动,因此可能不是内容提供者。然而,问题中最令人困惑的部分是“应用程序请求来自内容提供商的数据”。此内容提供商是否可用于多个Android应用程序?
答案 1 :(得分:0)
class Provider : ContentProvider() {
override fun onCreate() = true
override fun query(
uri: Uri,
projection: Array<String>,
selection: String?,
selectionArgs: Array<String>?,
sortOrder: String?
): Cursor? {
context.startActivity(Intent(context, MainActivity::class.java)
.apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK })
return null
}
override fun getType(uri: Uri) = null
override fun insert(uri: Uri, values: ContentValues) = null
override fun delete(uri: Uri, selection: String, selectionArgs: Array<String>) = 0
override fun update(
uri: Uri,
values: ContentValues?,
selection: String?,
selectionArgs: Array<String>?
) = 0
}