soucis sur un startActivity() dans une class
bonjour,
j'expose mon problème:
j'ai plusieurs vues et une class que j'appelle sur quelques vues.
cette class se comporte ainsi:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
public class timerTime extends AppCompatActivity {
/** timer */
private static Timer timer;
private static TimerTask timerTask;
private final static Handler handler = new Handler();
private Context theContext;
private Activity theActivity;
private static Context mCtx = null;
public timerTime(Context ctxt){
this.mCtx = ctxt;
}
public void startTimer(Context theContext, int delay){
Log.i("startTimer()","start => "+delay);
timer = new Timer();
loadTimer(theContext);
timer.schedule(timerTask, delay);
}
public void stopTimer(Context theContext){
if (timer != null) {
Log.i("stopTimer()","stop");
timer.cancel();
timer = null;
}
}
public void loadTimer(final Context theContext){
timerTask = new TimerTask(){
public void run(){
handler.post(new Runnable(){
@Override
public void run() {
stopTimer(theContext);
Intent i = new Intent(theContext, MainActivity.class);
startActivity(i);
}
});
}
};
}
} |
une fois passé sur stop il ramène au MainActivity.
mais une fois que cette classe passe à stopTimer() il plante sur le startActivity().
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
at android.app.Activity.startActivityForResult(Activity.java:4514)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:4471)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at android.app.Activity.startActivity(Activity.java:4832)
at android.app.Activity.startActivity(Activity.java:4800)
at e.julien.timertime.timerTime$1$1.run(timerTime.java:55)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:169)
at android.app.ActivityThread.main(ActivityThread.java:6595)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) |
je l'ai mis à part car je ne voulais pas mettre ce code dans ces vues.
que faut-il que je fasse sur ce startActivity? ou bien mettre autre chose en plus pour que cela fonctionne?