2012-05-01 28 views
17

Skype update text chứa tiếp theo:Làm thế nào để khởi động lại ứng dụng nếu nó bất ngờ shutdown

App khởi động lại tự động nếu bất ngờ đóng cửa

Làm thế nào có thể thực hiện điều đó thông qua SDK?

+0

Bạn có thể cung cấp cho chúng một liên kết nơi Skype nói rằng nó có thể tự động khởi động lại bản thân? –

+2

@MaximMikheev tất nhiên, tại đây: http://www.iclarified.com/entry/index.php?enid=21659 – Speakus

+1

hoặc thậm chí xem tại đây: http://itunes.apple.com/us/app/skype/id304878510 ? mt = 8 tại phần: Có gì mới trong Phiên bản 4.0 – Speakus

Trả lời

14

Theo tôi biết, một số loại ứng dụng có thể chạy dưới nền và có thể được khởi động lại trong trường hợp cụ thể. Đây là từ tài liệu của Apple

https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/doc/uid/TP40007125

Nếu bạn bắt đầu dịch vụ này và ứng dụng của bạn sau đó chấm dứt, hệ thống tự động relaunches ứng dụng vào nền nếu một sự kiện mới đến. Trong trường hợp này, từ điển tùy chọn được chuyển đến ứng dụng: didFinishLaunchingWithOptions: phương thức của đại biểu ứng dụng của bạn chứa khóa UIApplicationLaunchOptionsLocationKey để cho biết rằng ứng dụng của bạn đã được khởi chạy vì một sự kiện vị trí.

Ý kiến ​​của tôi là: Skype được khởi chạy lại với cơ chế thông báo từ xa.

Cập nhật

Vâng, tôi nghĩ rằng tôi tìm thấy một cái gì đó. @Malek_Jundi là nửa bên phải. Ứng dụng của bạn sẽ không thành công với mã thoát khác, nhưng ứng dụng phải được đăng ký là ứng dụng VoIP.

Vì các ứng dụng VoIP cần phải tiếp tục chạy để nhận cuộc gọi đến, hệ thống sẽ tự động khởi chạy lại ứng dụng nếu nó thoát với mã thoát nonzero. (Điều này có thể xảy ra trong trường hợp có áp lực bộ nhớ và ứng dụng của bạn bị hủy kết quả.) Tuy nhiên, việc chấm dứt ứng dụng cũng giải phóng tất cả các ổ cắm của nó, bao gồm cả ổ cắm được sử dụng để duy trì kết nối dịch vụ VoIP. Vì vậy, khi ứng dụng được khởi động, nó luôn luôn cần phải tạo ra các ổ cắm của nó từ đầu.

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12

+0

Nhưng người dùng phải bấm vào thông báo notificatino để nó không tự động khởi động lại nữa ... –

+0

Trình bày cảnh báo cho người dùng không phải là lựa chọn duy nhất, AFAIK. Dù sao, chỉ là suy nghĩ của tôi về chủ đề, tôi không biết Skype xử lý như thế nào. – anticyclope

+0

Điều này nghe có vẻ hứa hẹn mặc dù tôi chưa tìm thấy bất kỳ tài liệu nào về khởi động lại tự động. Có ai có thể xác nhận khởi động lại thành công sau khi ứng dụng đã bị chấm dứt bởi giá trị trả về lỗi/không phải không? – KPK

1

theo như tôi biết không thể khởi động lại ứng dụng của bạn .. bạn có thể giết ứng dụng của mình bằng cách sử dụng exit(1); nhưng điều này không được Apple cho phép và sẽ bị từ chối. có lẽ bạn làm một số workaround bằng cách loại bỏ một số quan điểm từ mainViewController và thêm nó một lần nữa và thiết lập lại dữ liệu và nội dung .. nhưng thực hiện một khởi động lại thực sự tôi không nghĩ như vậy.

1

Không chắc chắn whats với Skype nhưng - Thật không may, không có cách nào để khởi động lại ứng dụng. Thậm chí, không có cách nào để thoát/thoát khỏi ứng dụng. (để bỏ, vui lòng tham khảo this phần liên kết "Không thoát khỏi chương trình")

3

Skype không chính xác này:

  1. Thanh ghi nó socket TCP cho VoIP.
  2. Đăng nhập.
  3. Khi mã thoát Nonzero ứng dụng sẽ được khởi động lại bởi iOS (Vì ứng dụng VoIP cần chạy để nhận cuộc gọi đến, hệ thống sẽ tự động khởi chạy lại ứng dụng nếu nó thoát với mã thoát không phải là máy.).
  4. Sau đó, ngay lập tức bắt đầu tác vụ nền (Các ứng dụng được khởi chạy lại vẫn bị tạm ngưng).
  5. Tiếp theo, nó đăng ký ổ cắm đăng nhập của nó cho VoIP.
  6. Nó ghi lại trong
+0

Bạn có thể cung cấp bất kỳ tài liệu về táo nào về khoản 3 không? – Shamsiddin

0

Câu hỏi đặt ra là tại sao bạn muốn làm điều đó ?, nếu câu trả lời của bạn là:. Bạn muốn thực hiện một ứng dụng chạy trong một "iPad Kiosk" như vậy trong trường hợp nó bị rơi bạn cần ứng dụng tự động khởi động lại, sau đó, những gì sẽ hiệu quả với bạn là đặt iPad vào "chế độ kiosk" và hệ điều hành sẽ tự động khởi động lại ứng dụng trong trường hợp bị treo.

Hãy xem tại địa chỉ:

http://www.webascender.com/Blog/ID/447/How-to-Setup-Kiosk-Mode-Lock-Your-iPad-to-Just-One-App

Chúc mừng,

Các vấn đề liên quan