threadid=1: thread sortir avec uncaught exception (groupe=0x4001d5a0)
Pendant la programmation d'un compte à rebours de script dans la barre d'état, mais je suis toujours forcé ferme lorsque j'appelle l'
fonction OnClickListener détruire, à tuer l'application).
Je pense que quelque chose est incorrect avec le 'myNotificationManager.annuler(1); " mais je ne peux pas comprendre ce qui est l'erreur.
Voici mon code
public class ZaagmanActivity extends Activity {
public Handler handler = new Handler();
public NotificationManager myNotificationManager;
private static final int NOTIFICATION_ID = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.refresh);
button.setOnClickListener(refresh);
Button button1 = (Button)findViewById(R.id.destroy);
button1.setOnClickListener(destroy);
Button button2 = (Button)findViewById(R.id.counter);
button2.setOnClickListener(counter);
//test
}
private void GeneratNotification(){
myNotificationManager =
(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence NotificationTicket = "Counter gestart";
CharSequence NotificationTitle = "Zaagmans Counter";
CharSequence NotificationContent = Nextwedsmall();
long when = System.currentTimeMillis();
Notification notification = new Notification(R.drawable.poppetje,NotificationTicket, when);
Context context = getApplicationContext();
Intent notificationIntent = new Intent(this,ZaagmanActivity.class);
PendingIntent contentIntent =
PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, NotificationTitle,
NotificationContent, contentIntent);
myNotificationManager.notify(NOTIFICATION_ID, notification);
}
private OnClickListener destroy = new OnClickListener() {
public void onClick(View v) {
System.out.println("Closing");
myNotificationManager.cancel(1);
handler.removeCallbacks(notification);
finish();
}
};
private OnClickListener counter = new OnClickListener() {
public void onClick(View v) {
notification.run();
}
};
private OnClickListener refresh = new OnClickListener() {
public void onClick(View v) {
refresh();
Button button1 = (Button)findViewById(R.id.destroy);
button1.setOnClickListener(destroy);
;
}
};
private final Runnable showtext = new Runnable() {
public void run() {
TextView t=new TextView(getApplicationContext());
t=(TextView)findViewById(R.id.t);
t.setText(Nextwed());
handler.postDelayed(this, 500);
}
};
private final Runnable notification = new Runnable() {
public void run() {
GeneratNotification();
handler.postDelayed(this, 500);
}
};
public Calendar Nextwednesday(int dow){
Calendar date = Calendar.getInstance();
int diff = dow - date.get(Calendar.DAY_OF_WEEK);
if (!(diff > 0)) {
diff += 7;
}
date.add(Calendar.DAY_OF_MONTH, diff);
date.set(Calendar.HOUR_OF_DAY, 12);
System.out.println(date);
return date;
} public String Nextwedsmall() {
//
long wednes = Nextwednesday(Calendar.WEDNESDAY).getTimeInMillis();
System.out.println(wednes);
Date date = new Date(); //given date
Calendar date2 = GregorianCalendar.getInstance(); //creates a new calendar instance
date2.setTime(date);
long now = date2.getTimeInMillis();
long zaagmans = wednes - now;
System.out.println("time "+date2.getTime());
long Hour = date2.get(Calendar.HOUR_OF_DAY);
Hour = Hour -2;
long Minute = date2.get(Calendar.MINUTE);
long Seconds = date2.get(Calendar.SECOND);
long mSeconds = date2.get(Calendar.MILLISECOND);
float total = (mSeconds + (1000*Seconds) + (60*1000 * Minute) + (60*60*1000 * Hour));
zaagmans = (long) (zaagmans - total + (11*60*60*1000));
long days = zaagmans / (1000*60*60*24);
long hours = zaagmans / (1000*60*60) ;
long mins = zaagmans / (1000*60) ;
long secs = zaagmans / 1000 ;
long dd = days;
long hh = hours - days * 24;
long mm = mins - hours * 60;
long ss = secs - mins * 60;
System.out.println(date2);
date2.clear();
return (dd+" dag(en), "+hh+" uur(en), "+mm+" minuten en "+ss+" seconden");
}
public String Nextwed() {
//
long wednes = Nextwednesday(Calendar.WEDNESDAY).getTimeInMillis();
System.out.println(wednes);
Date date = new Date(); //given date
Calendar date2 = GregorianCalendar.getInstance(); //creates a new calendar instance
date2.setTime(date);
long now = date2.getTimeInMillis();
long zaagmans = wednes - now;
System.out.println("time "+date2.getTime());
long Hour = date2.get(Calendar.HOUR_OF_DAY);
Hour = Hour - 13;
long Minute = date2.get(Calendar.MINUTE);
long Seconds = date2.get(Calendar.SECOND);
long mSeconds = date2.get(Calendar.MILLISECOND);
float total = (mSeconds + (1000*Seconds) + (60*1000 * Minute) + (60*60*1000 * Hour));
zaagmans = (long) (zaagmans - total);
long days = zaagmans / (1000*60*60*24);
long hours = zaagmans / (1000*60*60) ;
long mins = zaagmans / (1000*60) ;
long secs = zaagmans / 1000 ;
long dd = days;
long hh = hours - days * 24;
long mm = mins - hours * 60;
long ss = secs - mins * 60;
System.out.println(date2);
date2.clear();
return ("Dagen: "+dd+", Uren: "+hh+", Minuten: "+mm+", Seconden: "+ss+" ");
}
public void refresh(){
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
hour = hour + 2;
if(day==4 && hour >= 12){
System.out.println("woensdag");
setContentView(R.layout.zaagmans);
}
else if(day==5){
System.out.println("donderdag");
setContentView(R.layout.zaagmans);
}
else if(day==6 && hour <= 17){
System.out.println("vrijdag");
setContentView(R.layout.zaagmans);
}
else if(day==6 && hour > 17){
System.out.println("vrijdag");
setContentView(R.layout.weekend);
}
else if(day==7 || day==1){
System.out.println("Weekend");
setContentView(R.layout.weekend);
}
else{
setContentView(R.layout.jammer);
showtext.run();
}
}
}
Et voici mon journal
10-25 14:03:21.200: W/dalvikvm(12287): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
10-25 14:03:21.210: E/AndroidRuntime(12287): FATAL EXCEPTION: main
10-25 14:03:21.210: E/AndroidRuntime(12287): java.lang.NullPointerException
10-25 14:03:21.210: E/AndroidRuntime(12287): at nl.zaagmans.ZaagmanActivity$5.run(ZaagmanActivity.java:128)
10-25 14:03:21.210: E/AndroidRuntime(12287): at nl.zaagmans.ZaagmanActivity$2.onClick(ZaagmanActivity.java:93)
10-25 14:03:21.210: E/AndroidRuntime(12287): at android.view.View.performClick(View.java:2532)
10-25 14:03:21.210: E/AndroidRuntime(12287): at android.view.View$PerformClick.run(View.java:9293)
10-25 14:03:21.210: E/AndroidRuntime(12287): at android.os.Handler.handleCallback(Handler.java:587)
10-25 14:03:21.210: E/AndroidRuntime(12287): at android.os.Handler.dispatchMessage(Handler.java:92)
10-25 14:03:21.210: E/AndroidRuntime(12287): at android.os.Looper.loop(Looper.java:143)
10-25 14:03:21.210: E/AndroidRuntime(12287): at android.app.ActivityThread.main(ActivityThread.java:4263)
10-25 14:03:21.210: E/AndroidRuntime(12287): at java.lang.reflect.Method.invokeNative(Native Method)
10-25 14:03:21.210: E/AndroidRuntime(12287): at java.lang.reflect.Method.invoke(Method.java:507)
10-25 14:03:21.210: E/AndroidRuntime(12287): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-25 14:03:21.210: E/AndroidRuntime(12287): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-25 14:03:21.210: E/AndroidRuntime(12287): at dalvik.system.NativeStart.main(Native Method)
La ligne est la ligne 128? Aussi, essayez de limiter votre code à un sscce
la date de retour; est la ligne 128 je vais raccourcir mon code
la date de retour; est la ligne 128 je vais raccourcir mon code
OriginalL'auteur Perrykipkerrie | 2011-10-25
Vous devez vous connecter pour publier un commentaire.
La ligne
renvoie la valeur null, parce que votre méthode de course n'est pas à la portée de tout fichier de mise en page. Le code n'a aucun sens au fait, comme vous êtes en train de créer un objet et de l'attribuer à
t
droit avant de faire cette mission.Et s'il vous plaît ne postez pas votre code source complet, seulement après que les parties pertinentes.
La ligne je l'ai mentionné provoque l'Exception parce que "t" est nulle 😉 et si vous supprimez l'annuler()-appeler le faux code n'est pas appelé plus.
Ah, je comprends. Je vais essayer
Fait, mais elle ne résout pas le forcé à proximité :S
Problème résolu!
OriginalL'auteur HefferWolf