Skip to content

Commit e712328

Browse files
authored
fix: android native variant stops responding at unmount during spinn (#296)
1 parent cfa1745 commit e712328

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class AndroidNative extends NumberPicker implements Picker {
2424
private int state = SCROLL_STATE_IDLE;
2525
private OnValueChangeListenerInScrolling listenerInScrolling;
2626
private boolean isAnimating;
27+
private final Handler handler = new Handler();
2728

2829
public AndroidNative(Context context) {
2930
super(context);
@@ -111,7 +112,7 @@ public void smoothScrollToValue(final int value) {
111112
int timeBetweenScrollsMs = 100;
112113
int willStopScrollingInMs = timeBetweenScrollsMs * moves;
113114
isAnimating = true;
114-
new Handler().postDelayed(new Runnable() {
115+
handler.postDelayed(new Runnable() {
115116
@Override
116117
public void run() {
117118
isAnimating = false;
@@ -149,7 +150,7 @@ private void changeValueByOne(final NumberPicker higherPicker, final boolean inc
149150

150151
private void changeValueByOne(final boolean increment, final int ms, final boolean isLast) {
151152
final AndroidNative self = this;
152-
new Handler().postDelayed(new Runnable() {
153+
handler.postDelayed(new Runnable() {
153154
@Override
154155
public void run() {
155156
changeValueByOne(self, increment);
@@ -202,7 +203,7 @@ private void sendEventIfStopped(int nextState){
202203
}
203204

204205
private void sendEventIn500ms(){
205-
new Handler().postDelayed(new Runnable() {
206+
handler.postDelayed(new Runnable() {
206207
@Override
207208
public void run() {
208209
onValueChangedListener.onValueChange();
@@ -211,4 +212,9 @@ public void run() {
211212
}, 500);
212213
}
213214

215+
@Override
216+
protected void onDetachedFromWindow() {
217+
super.onDetachedFromWindow();
218+
handler.removeCallbacksAndMessages(null);
219+
}
214220
}

0 commit comments

Comments
 (0)