@@ -24,6 +24,7 @@ public class AndroidNative extends NumberPicker implements Picker {
24
24
private int state = SCROLL_STATE_IDLE ;
25
25
private OnValueChangeListenerInScrolling listenerInScrolling ;
26
26
private boolean isAnimating ;
27
+ private final Handler handler = new Handler ();
27
28
28
29
public AndroidNative (Context context ) {
29
30
super (context );
@@ -111,7 +112,7 @@ public void smoothScrollToValue(final int value) {
111
112
int timeBetweenScrollsMs = 100 ;
112
113
int willStopScrollingInMs = timeBetweenScrollsMs * moves ;
113
114
isAnimating = true ;
114
- new Handler () .postDelayed (new Runnable () {
115
+ handler .postDelayed (new Runnable () {
115
116
@ Override
116
117
public void run () {
117
118
isAnimating = false ;
@@ -149,7 +150,7 @@ private void changeValueByOne(final NumberPicker higherPicker, final boolean inc
149
150
150
151
private void changeValueByOne (final boolean increment , final int ms , final boolean isLast ) {
151
152
final AndroidNative self = this ;
152
- new Handler () .postDelayed (new Runnable () {
153
+ handler .postDelayed (new Runnable () {
153
154
@ Override
154
155
public void run () {
155
156
changeValueByOne (self , increment );
@@ -202,7 +203,7 @@ private void sendEventIfStopped(int nextState){
202
203
}
203
204
204
205
private void sendEventIn500ms (){
205
- new Handler () .postDelayed (new Runnable () {
206
+ handler .postDelayed (new Runnable () {
206
207
@ Override
207
208
public void run () {
208
209
onValueChangedListener .onValueChange ();
@@ -211,4 +212,9 @@ public void run() {
211
212
}, 500 );
212
213
}
213
214
215
+ @ Override
216
+ protected void onDetachedFromWindow () {
217
+ super .onDetachedFromWindow ();
218
+ handler .removeCallbacksAndMessages (null );
219
+ }
214
220
}
0 commit comments