The Material Time Picker component crashes on Android during app background/foreground cycle
還沒有人認領這個 Issue。
評估
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 新手友好度
- 45/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- android, javascript, react-native
- 領域
- mobile
研究方向
Start by tracing the Android Material time picker flow in RNMaterialTimePicker.kt and MaterialTimePickerModule.kt, especially the show call in the stack trace and how opening is scheduled. Reproduce the background/foreground interruption on Android with the provided steps. Done means returning to the app after interrupting the dialog no longer crashes.
由索引模型根據 Issue 內容生成。
描述
Bug report
Summary
Using the Material Design time picker in my Android app causes a crash when the user switches to another app or locks the device while the time picker dialog is opening or open, and then go back to my app.
Expected Behavior:
The app should resume gracefully without crashing, even if the time picker dialog was interrupted or not fully shown.
Actual Behavior:
The app crashes when returning from background after attempting to open the time picker.
Steps to reproduce
- I open a screen with the time picker
- I tap a button that opens the time picker
- I press the home button before the picker fully appears
- When I return to my app, it crashes
Code -
const DateTimePicker: React.FC<DateTimePickerProps> = ({
testID,
value,
mode,
display,
onChange,
style,
minimumDate,
maximumDate,
is24Hour = false,
androidProps = {},
}) => {
const {title, positiveButton, negativeButton} = androidProps;
return (
<View style={styles.container}>
<DateTimeSelector
testID={testID}
value={value}
mode={mode}
display={display}
design="material"
onChange={onChange}
title={title}
positiveButton={positiveButton}
negativeButton={negativeButton}
style={style}
minimumDate={minimumDate}
maximumDate={maximumDate}
is24Hour={is24Hour}
/>
</View>
);
};
now I'm using above component as in our app screen ->
<DateTimePicker
testID={'DATE_TIME_PICKER'}
value={get.selectedDate}
mode="time"
display={get.isAndroid ? 'clock' : 'spinner'}
maximumDate={get.maximumDate}
onChange={set.handleTimeChange}
is24Hour={get.is24HourFormat}
style={styles.dateTimePicker}
androidProps={{
title: t('selectTime'),
positiveButton: {label: t('Button.ok')},
negativeButton: {label: t('Button.cancel')},
}}
/>
Error
androidx.fragment.app.BackStackRecord.commitInternal (BackStackRecord.java:341)
androidx.fragment.app.BackStackRecord.commit (BackStackRecord.java:306)
androidx.fragment.app.DialogFragment.show (DialogFragment.java:507)
com.reactcommunity.rndatetimepicker.RNMaterialTimePicker.show (RNMaterialTimePicker.kt:109)
com.reactcommunity.rndatetimepicker.RNMaterialTimePicker.open (RNMaterialTimePicker.kt:29)
com.reactcommunity.rndatetimepicker.MaterialTimePickerModule.open$lambda$0 (MaterialTimePickerModule.kt:46)
com.reactcommunity.rndatetimepicker.MaterialTimePickerModule.$r8$lambda$Fd7Bz8i6zmNahyMJIHFgC8wqsHw
com.reactcommunity.rndatetimepicker.MaterialTimePickerModule$$ExternalSyntheticLambda0.run (D8$$SyntheticClass)
android.os.Handler.handleCallback (Handler.java:958)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loopOnce (Looper.java:230)
android.os.Looper.loop (Looper.java:319)
Environment
- @react-native-community/datetimepicker: 8.4.1
- React Native: v0.76.6
- Android: 14
- 主要語言
- JavaScript
- 星號
- 2.9k
- 分支
- 459
- 平均合併
- 4 天 16 小時
- 30 天內合併 PR
- 5
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
react-native-datetimepicker/datetimepicker 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 76/100
-
難度 3/5 1-2 天 新手友好度 58/100
react-native-datetimepicker/datetimepicker#1070 · 1 則留言 ·
-
難度 3/5 1-2 天 新手友好度 52/100
-
難度 3/5 1-2 天 新手友好度 55/100
react-native-datetimepicker/datetimepicker#1047 · 6 則留言 ·
-
難度 4/5 3-5 天 新手友好度 20/100
react-native-datetimepicker/datetimepicker#1046 · 1 則留言 ·
查看 react-native-datetimepicker/datetimepicker 的全部 Issue
相似的 Issue
-
bug
難度 2/5 1-3 小時 新手友好度 75/100
arfct/timezone.fyi#19 ·
-
難度 2/5 1-3 小時 新手友好度 82/100
fastify/fastify-http-proxy#493 ·
-
難度 2/5 1-3 小時 新手友好度 82/100
tensorflow/tfjs#8754 ·
-
bug main ui
難度 2/5 1-3 小時 新手友好度 78/100
openhab/openhab-webui#4671 ·
維護者通常 1 天內回覆
-
scratch-paint's npm test does not run lint, so CI never lints paint; one lint error is currently in develop可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 86/100
scratchfoundation/scratch-editor#754 ·
維護者通常 1 天內回覆