我正在为Android创建一个应用程序,它没有在市场上列出,所以我创建了自己的更新程序。
Asynctask在后台运行检查新版本, 当有新版本时,它会创建一个通知
当通知在状态栏中时,打开状态栏的速度很慢(有时点击通知无效?)
这是我的代码:
public static void makeNotification(Class<?> newclass, CharSequence msg, CharSequence from, CharSequence message, int icon, Context c) {
PendingIntent newintent = PendingIntent.getActivity(c, 0, new Intent(c, newclass), 0);
NotificationManager nm = (NotificationManager) c.getSystemService(NOTIFICATION_SERVICE);
Notification notif = new Notification( icon, msg, System.currentTimeMillis());
notif.setLatestEventInfo(c, from, message, newintent);
nm.notify(0, notif);
}
这是在主要活动中,并从asynctask调用。
if (Integer.parseInt(xmlroosters.getVersionCode()) > currentversion){
new Main().makensNotification(Update.class, "The app need an update.", "Update", "Click here to update the app.", R.drawable.app);
}
有人能告诉我为什么这么慢吗? (有时我甚至无法打开状态栏) 为什么有时点击它甚至不可能?
答案 0 :(得分:1)
我怀疑你是在循环中一遍又一遍地打电话。您正在消耗所有手机的可用CPU周期,以检查更新;)
考虑检查时间表......
new CountDownTimer(1000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();