Обновление внутри приложения (НЕМЕДЛЕННО) не перезапускает приложениеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Обновление внутри приложения (НЕМЕДЛЕННО) не перезапускает приложение

Сообщение Anonymous »

Возникла проблема с режимом НЕМЕДЛЕННОГО обновления приложения. После успешного завершения обновления приложения все закрывается и приложение не перезапускается. В этом и проблема.
Но в документации Android сказано:

Полноэкранный пользовательский интерфейс, требующий от пользователя обновления и
перезапуска приложения, чтобы продолжить его использование. Этот UX лучше всего подходит
для случаев, когда обновление имеет решающее значение для дальнейшего использования приложения.
После того, как пользователь принимает немедленное обновление, Google Play выполняет
установку обновления и перезапуск приложения.

implementation 'com.google.android.play:core:1.9.1'
implementation 'com.google.android.play:core-ktx:1.8.1'

код
class MainActivity : AppCompatActivity() {

companion object {
const val UPDATE_REQUEST_CODE = 112
const val TAG = "MainActivity"
}

private var appUpdateManager: AppUpdateManager? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById(R.id.tv_text).text = "Version " + BuildConfig.VERSION_NAME

// Returns an intent object that you use to check for an update.
appUpdateManager = AppUpdateManagerFactory.create(this)
}

private val listener: InstallStateUpdatedListener =
InstallStateUpdatedListener { installState ->
if (installState.installStatus() == InstallStatus.DOWNLOADED) {
// After the update is downloaded, show a notification
// and request user confirmation to restart the app.
Log.d(TAG, "An update has been downloaded")
} else if (installState.installStatus() == InstallStatus.INSTALLED) {
Log.d(TAG, "An update has been installed")
}
}

override fun onStart() {
super.onStart()
checkAppVersionNew()
}

private fun checkAppVersionNew() {
val appUpdateInfoTask = appUpdateManager!!.appUpdateInfo
appUpdateInfoTask.addOnSuccessListener { result: AppUpdateInfo ->
if (result.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && result.isUpdateTypeAllowed(
AppUpdateType.IMMEDIATE
)
) {
try {
Log.d(TAG, "An update available")
appUpdateManager!!.startUpdateFlowForResult(
result,
AppUpdateType.IMMEDIATE,
this,
UPDATE_REQUEST_CODE
)
} catch (e: SendIntentException) {
Log.d(TAG, "SendIntentException $e")
e.printStackTrace()
}
}
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

if (requestCode == UPDATE_REQUEST_CODE) {
when (resultCode) {
RESULT_OK -> {
Log.d(TAG, "Update success")
}
RESULT_CANCELED -> {
Log.d(TAG, "Update cancelled")
}
ActivityResult.RESULT_IN_APP_UPDATE_FAILED -> {
Log.d(TAG, "Update failed")
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/663 ... ing-an-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»