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);
}

これはメイン アクティビティにあり、asynctask から呼び出されます。

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 に答える