0

我正在为 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);
}

这是在主要活动中,并从异步任务中调用。

if (Integer.parseInt(xmlroosters.getVersionCode()) > currentversion) {
    new Main().makensNotification(Update.class,
                                  "The app needs an update.",
                                  "Update",
                                  "Click here to update the app.",
                                  R.drawable.app);
}

为什么这么慢?(有时我什至无法打开状态栏)为什么有时甚至无法点击它?

4

1 回答 1

1

我怀疑你在循环中一遍又一遍地调用它。您正在消耗手机的所有可用 CPU 周期来检查更新;)

考虑检查时间表...

new CountDownTimer(1000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }

     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();
于 2013-02-09T13:04:24.067 回答