我需要每隔15秒调用一个方法,无论是否存在任何事实,无论是foreground
中的任何视图控制器,是background
还是killed
,我需要随时打电话。
我知道我可以使用NSTimer
NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 15.0 target: self
selector: @selector(callAfterFifteenSeconds:) userInfo: nil repeats: YES];
但是,我想知道在哪里实施它以便它可以满足我的条件。我想我可以在App Delegate
中使用它,但我需要一个指导,以便正确实现它。
答案 0 :(得分:1)
在App Delegate类中调用它是正确的位置,但它不适用于以下情况。
答案 1 :(得分:1)
- 如果应用程序被杀,你就无法做任何事情。
- 当应用程序处于后台时,操作系统可能会在一定时间间隔后终止该进程(我相信它是15秒)。
虽然您可以在应用程序处于后台时注册位置更改。在这种情况下,您的应用会继续接收位置更新(例如谷歌地图)。
public void readIncassiOLG(String filename, List<String []> itemsToCheck) {
String[] answers = {"", "not "};
CSVReader reader = new CSVReader(new FileReader(filename), CSV_SEPARATOR);
List<String []> body = reader.readAll();
for (String[] item : itemsToCheck) {
for (String[] bodyItem : body) {
int present = Arrays.equals(bodyItem, item) ? 0 : 1;
System.out.println(String.format("Item %spresent", answers[present]));
}
}
}
答案 2 :(得分:-1)
[NSThread sleepForTimeInterval:4.0f];
dispatch_async(dispatch_get_main_queue(),
^{
//write you code if you want fire any method after 4 sec//
}
);