gpt4 book ai didi

Android 为什么操作系统会发出 onPause()

转载 作者:行者123 更新时间:2023-11-29 22:04:46 28 4
gpt4 key购买 nike

我的 Activity 创建了一个 AsyncTask,它从文件中加载数据并在 onProgressUpdate() 上更新 UI,经典书籍 AsyncTask
但是 Android 会在 AsyncTask 启动后立即放置 Activity onPause()

我正在尝试了解原因(以及如何预防)

这会导致所有 AsyncTask UI 更新停止;然后,当 AsyncTask 完成时,Activity 不会自行恢复,我必须触摸屏幕或按一些操作栏按钮才能将其转到 onResume( )

编辑:
这是 logcat,(使用 Logcat 应用程序获取它)

<待更新新的完整日志>

临时的(文件选择器之后的第一个 onPause()):

06-12 22:08:48.744 11302 11302 D Viewer: + optionsItemSelected(itemID:2131296267)
06-12 22:08:48.754 11302 11302 D Viewer: + showFileChooser(path:/mnt/sdcard/Android/data/com.delphi.app/files, requestCode:0)
06-12 22:08:48.754 11302 11302 D Viewer: + onResume()
06-12 22:08:48.754 11302 11302 D Viewer: + onSaveInstanceState(outState:Bundle[{}])
06-12 22:08:48.754 11302 11302 D Viewer: + onPause()
06-12 22:08:48.754 189 443 I ActivityManager: START {act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras)} from pid 11302
06-12 22:08:48.764 189 489 D WindowManager: adjustConfigurationLw, config:{1.0 0mcc0mnc (no locale) layoutdir=0 sw800dp w800dp h1232dp xlrg port ?uimode ?night finger -keyb/v/h -nav/v} mLidOpen:-1 mHasDockFeature:true mHasHallSensorFeature:true config.hardKeyboardHidden:2
06-12 22:08:48.764 11302 11304 D dalvikvm: GC_CONCURRENT freed 244K, 5% free 6748K/7047K, paused 2ms+3ms

临时的(第二个 onPause() ,问题之一):

06-12 22:09:00.324 11302 11350 I LoaderTask: Publishing message 13
06-12 22:09:00.324 11302 11350 I LoaderTask: Adding message 14
06-12 22:09:00.324 11302 11350 I LoaderTask: Publishing message 14
06-12 22:09:00.354 11302 11350 I LoaderTask: Adding message 15
06-12 22:09:00.354 11302 11302 D MessageTable: + onLayout(changed:false, l:0, t:0, r:800, b:20)
06-12 22:09:00.354 11302 11350 I LoaderTask: Publishing message 15
06-12 22:09:00.364 11302 11302 D MessageTable: + getColumns()
06-12 22:09:00.364 11302 11302 D MessageTable: + getRowCount()
06-12 22:09:00.364 11302 11302 D MessageTable: + getRowAt(index:-1)
06-12 22:09:00.364 11302 11302 D MessageRow: + getColumns()
06-12 22:09:00.364 11302 11302 D MessageTable: + setHeaderColumns(cols:[I@41125668)
06-12 22:09:00.364 11302 11302 D MessageRow: + setColumns(cols:[I@41125668)
06-12 22:09:00.364 11302 11302 D Viewer: + onSaveInstanceState(outState:Bundle[{}])
06-12 22:09:00.364 11302 11302 D Viewer: + onPause()
06-12 22:09:00.364 11302 11302 D LoaderTask: + getState()
06-12 22:09:00.364 11302 11302 D LoaderTask: + pause()
06-12 22:09:00.364 189 489 D WindowManager: adjustConfigurationLw, config:{1.0 0mcc0mnc (no locale) layoutdir=0 sw800dp w800dp h1232dp xlrg port ?uimode ?night finger -keyb/v/h -nav/v} mLidOpen:-1 mHasDockFeature:true mHasHallSensorFeature:true config.hardKeyboardHidden:2

应用程序结构,根据要求添加:

MainActivity
Launch Viewer Activity on Button click

Viewer Activity
Show layout, has a MessageTable (TableLayout)
Launch ShowFileChosser to choose a Records file
Execute LoaderTask with given file

LoaderTask
Open given file
doInBackground()
Read one record
Add the record to an ArrayList
if not paused Publish record
onProgressUpdate()
Show record in MessageTable

最佳答案

06-12 18:21:09.394 9512 9512 D Viewer: + onStop()
06-12 18:21:14.684 9512 9512 D Viewer: + onActivityResult(requestCode:0, resultCode:-1, data:Intent { dat=file:///mnt/sdcard/Download/Records.11111.MyLog.gzip })

您已经过滤了 logcat,因此很难看到所有发生的事情,但看起来您正在使用 Intent 在这 5 秒的间隔期间从另一个 Activity 中获取某些内容(文件名?)。

只要您转移到另一个 Activity ,您就应该期待一个 onPause()-onResume() 循环。

关于Android 为什么操作系统会发出 onPause(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999311/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com