私の PhoneGap 1.3 オフライン アプリでは、公式のプラグイン GitHub ページにある変更された iOS ローカル通知プラグインを使用しています。
ユーザー定義の設定に基づいて、繰り返し通知 (毎週/毎月)、または 2 週間ごとに発生する複数の単一通知をスケジュールする必要があります。
この問題は、これらの 26 個の通知を 2 週間ごとに起動するようにスケジュールしようとしているときに発生します。
現在、私はそれを達成するためにこれを使用しています:
for (int i = 1; i < 26; i++)
{
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) {
return;
}
NSDate *date = [[NSDate date] dateByAddingTimeInterval: i * 60 * 60 * 24 * 7 * 2];
localNotif.fireDate = date;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = [NSString stringWithFormat:@"%i: %@", i, msg];
localNotif.hasAction = NO;
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
}
これを iPhone 3G または iPod Touch 2 で実行すると、UI が約 3 ~ 5 秒間フリーズします。スケジューリング通知を最適化する方法はありますか?
毎週および毎月の繰り返し通知のみを使用することで問題が解決することはわかっていますが、クライアントは、、、および通知を希望しているevery 2 weeks
ためevery 2 months
、every 3 months
複数の通知をスケジュールする必要があります。
新しい問題を引き起こす新しいスレッドでループを実行しようとしました[NSThread detachNewThreadSelector:...]
(時々クラッシュします)。
3Gの後にリリースされたiPhoneは、遅延/フリーズが存在しないほど高速ですか? テストする古代のデバイスは 2 つしかありません。