2013-04-04 2 views
2

Используя Corona SDK, я бы хотел, чтобы чистый перезапуск моего приложения каждый раз, когда пользователь нажимает кнопку homebutton. Если он/она получает phonecall, вытаскивает dropdownmenu и т. Д., Я бы хотел, чтобы приложение продолжало свое текущее состояние.Corona SDK: перезагрузите приложение, только когда пользователь нажимает «home»

Любые предложения?

Спасибо, /S

+0

Предположим, вы имеете в виду iPhone? –

+0

Оба андроида (те, у кого есть домашняя кнопка ..) и iPhone. спасибо – Eyeball

ответ

4

как я решил это!

suspendTime = 0 
resumeTime = 0 

function onSystemEvent(event) 
    if event.type == "applicationSuspend" then 
     suspendTime = os.time() 
     print(suspendTime) 
    elseif event.type == "applicationResume" then 
     resumeTime = os.time() 
     print(resumeTime) 
     print("deltaTime: "..resumeTime - suspendTime) 
      if(resumeTime - suspendTime > 30) then 
      local sceneName = storyboard.getCurrentSceneName() 
      if(sceneName ~= "levels.splash") then 
       print(sceneName) 
       print(resumeTime) 
         storyboard.gotoScene("levels.splash") 
      end 
     end 
    end 

end 
Runtime:addEventListener("system", onSystemEvent) 
+0

Не забудьте suspendTime = 0 и resumeTime = 0, после нахождения delta;) Кстати, os.time() возвращает час всегда? что он делает, когда вы приостанавливаете приложение в 23:59 и открываете его снова в 00:01? –

+0

Я считаю, что os: time - это временная метка unix. http://en.wikipedia.org/wiki/Unix_time – Eyeball

+0

Итак, я думаю, он не восстанавливает минуты. В любом случае вы можете убедиться, попробовав или присвоив это значение. Если все нормально работает, ничего не нужно делать. –

1
function onKeyEvent(event) 
    local keyname = event.keyName; 
    if (event.phase == "up" and (event.keyName=="back" or event.keyName=="menu" or event.keyName == "home")) then 
     if keyname == "menu" then 
     os.exit() 
    end 
    end 
    return false 
end 

Runtime:addEventListener("key", onKeyEvent) 

Это одна будет работать на Android. Я проверил от http://docs.coronalabs.com/api/event/key/keyName.html, так что нет способа сделать это в iPhone.

Но вы можете попробовать следующее: получить время, когда приложение приостановлено. И сохраните его в каталоге документов. Затем, когда приложение возобновляется, проверьте время между двумя сеансами. Если есть больше, чем полчаса, перезагрузите все.

+0

Удивительный, я дам ему шанс! благодаря! – Eyeball

+0

Нет, это не работает для кнопки home на android, как вы можете видеть в вашей ссылке, в ней говорится: 'homePage' \t' Клавиша «перейти на главную страницу» (это не кнопка «Главная» на Android) .' глазный ответ работает как шарм! – Arash

Смежные вопросы