这是How to check launchOptions in Swift?的后续问题 - 我的应用程序成功启动而没有崩溃,但我似乎无法正确检测应用程序何时从通知启动到正常启动
我正在创建我的UILocalNotification:
// set up a frequently recurring notification here just for testing...
var fast = UILocalNotification()
fast.fireDate = NSDate(timeIntervalSinceNow: 15)
fast.alertBody = "Alert Message"
fast.timeZone = NSTimeZone.localTimeZone()
fast.repeatInterval = NSCalendarUnit.CalendarUnitMinute
fast.userInfo = ["Important":"Data"]
UIApplication.sharedApplication().scheduleLocalNotification(fast)
这是我的代码,用于尝试处理从UILocalNotification启动应用程序的时间。
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
if var launch = launchOptions {
if var key = launch.objectForKey(UIApplicationLaunchOptionsLocalNotificationKey) {
// I never seem to reach this point...
}
}
return true
}
如果我的应用程序是背景并且我点击警告框,我想要触发的动作正确执行,所以我知道我至少可以使一条路径正常工作。这里的问题是完全通过通知启动应用程序。
答案 0 :(得分:3)
如果您的应用程序在后台运行,那么"应用程序就会完成启动"方法不会被调用。它已经推出。
在这种情况下,你应该在"应用程序didReceiveLocalNotification"中完成你的工作。方法
func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!) {
// do your jobs here
}
答案 1 :(得分:-1)
public View.OnClickListener onChk = new View.OnClickListener() {
public void onClick(View v) {
int index = list.getFirstVisiblePosition();
getListView().smoothScrollToPosition(index+1); // For increment.
}
});
将为nil。如果您通过通知启动应用程序而不是直接启动应用程序,则代码将运行。
如果您直接启动应用程序,那么您需要一些其他方法来解决此问题。比如使用LaunchOptions
的时间和当前时间,并决定要显示哪个视图。