OnActivityResult не срабатывает при завершении
Следующее приложение работает как положено:
import android.app.Activity
import android.content.Intent
import android.graphics.BitmapFactory
import android.app.WallpaperManager
class ChwallActivity < Activity
def onCreate(state)
super
setContentView R.layout.main
end
$Override
def onStart
super
Intent intent = Intent.new(Intent.ACTION_PICK)
intent.setType "image/*"
startActivityForResult Intent.createChooser(intent, "Select Picture"), 0
end
$Override
def onActivityResult(requestCode, resultCode, data:Intent)
super
thumb = BitmapFactory.decodeFile "/storage/sdcard0/download/foo.jpg"
manager = WallpaperManager.getInstance self
manager.setBitmap thumb
end
end
Это выполняет выбор галереи в бесконечном цикле, что нежелательно. Однако, если я вставлю finish
в конце onStart()
функция, onActivityResult()
кажется, не называется: обои не меняются на foo.jpg. Является onActivityResult()
вызывается, когда галерея запускается во второй раз? Что здесь происходит?
3 ответа
Переместите следующий код в onCreate
и это должно работать хорошо
Intent intent = Intent.new(Intent.ACTION_PICK)
intent.setType "image/*"
startActivityForResult Intent.createChooser(intent, "Select Picture"), 0
OnStart()
вызывается снова, когда активность снова становится видимой, после завершения действия выбора, который снова запускает действие выбора и т. д.
Вы не должны помещать эту логику в onStart()
вместо этого пользовательское событие запускает сборщик.
ИЛИ ЖЕ
Вы могли бы использовать boolean
Отметить, чтобы отслеживать, если вы уже выбрали изображение.