2013-11-23 2 views
0

Хорошо, это может показаться глупым, но мне нужно найти фрагмент кода, который быстро согревает iPhone и не затормозит все приложение. Кто-нибудь имеет дело с теплом и телефонами?Нагрейте iPhone по коду

+2

Вы имеете в виду как физическую температуру вверх? Зачем? Вы делаете приложение для антарктических людей? –

+0

И, возможно, запустить вечно, пока цикл на потоке может вам помочь, кстати. –

+0

Слив батареи для разогрева - смешная идея. Аккумулятор еще эффективнее, если он не слишком горячий. Если дисплей страдает от низких температур, просто положите устройство в карман. – CouchDeveloper

ответ

5

Вопрос странный, но я сделаю снимок. Любая ошибка, например, вздутие iPhone и т. Д., Если это происходит, не является моей ответственностью. Я предполагаю, что вы хорошо знаете, что делаете.

Самые быстрые способы «согреться» на вашем iPhone - это сделать 2 вещи (среди других).

  1. Run ресурсоемкий код (например, рассчитать Pi до энной цифры)
  2. Старт с использованием GPS + отслеживание местоположения с точностью до 10 м с максимально возможными геоданными.

Для запуска задач интенсивной работы с процессором вы создаете (скажем, 5) фоновые потоки & запускаете бесконечные некоторые циклы. Также запустите (еще 5) обновления местоположения на основе фоновых потоков & подпишитесь на обновления местоположения с помощью описанных выше спецификаций.

Обратите внимание, что любая операция, которая потребляет слишком много энергии аккумулятора, должна нагревать ваш iPhone. См. Здесь для больше - What are the most battery-consuming things you can do in an iPhone-app?

Не возражаете, я спрашиваю, почему вы это делаете?

+0

Я делаю приложение для hackathon, в основном iPhone будет действовать как (дорогой) камень. Я думал о чем-то интенсивном процессоре, но я не хочу зацикливаться, так как он занимается сетью и играет музыку среди других вещей. –

+0

создайте фоновый поток и выполните любые такие операции там. Он не должен замораживать ваш пользовательский интерфейс (поскольку пользовательский интерфейс работает в основном потоке). –

+1

Я подозреваю, что вам будет лучше не делать GPU занятым. Вероятно, это приведет к постоянному оживлению огромной кучи перекрывающихся прозрачных представлений. – marko

1

Лучшим вариантом является постоянный запуск NSRunLoop с очень небольшим интервалом.

while(TRUE) 
{ 
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.0001]]; 
} 
Смежные вопросы