-1

私が欲しいもの:アプリがバックグラウンドになり、ユーザーが他のアプリを開くと、他のアプリが開かれていることが通知されます。

私がやろうとしている方法: バックグラウンドでスレッドを実行すると、たとえば2時間、このスレッドは他のアプリが開かれていることを確認します.これは、特定の条件が満たされた場合にのみ、常に発生するわけではありません.

これを達成しようとしている方法:私は使用しています

UIBackgroundTaskIdentifier & beginBackgroundTaskWithExpirationHandler

スレッドは無限に実行されますが、アップルがそれを行うべきではないと示唆している正しい方法だとは思いません.10分後にスレッドは殺されます.

バックグラウンド モードと ios 7.0 で利用可能ないくつかの新しいモードも確認しましたが、これを達成するために使用するモードが見つかりません [特定のセッション/条件で、アプリがバックグラウンドになり、そこに 2 時間留まると、他のアプリがホーム画面の代わりに開かれます]。

これを達成する方法はありますか。他のアプリが開かれたという通知を受け取るためにバックグラウンド作業を行う方法を知りたいだけです。

4

1 に答える 1

0

1- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler NS_AVAILABLE_IOS(4_0); したがって、約 600 秒後にアプリがすぐに強制終了されるため、ハンドラー ブロックが呼び出されます。ハンドラー ブロックでは、さらに 600 秒間更新できます 'UIBackgroundTaskIdentifier & beginBackgroundTaskWithExpirationHandler' …</p>

しかし、これはバッテリーを消耗させる可能性があり、Apple はそれを気に入りませんでした!

2-「...他のアプリが開かれたという通知を受け取るため。」私はアップル(iOS)がこれを行うアプリを許可するとは思わない!

しかし、「他のアプリ」があなたが制御するアプリである場合、「あるアプリから別のアプリにデータを送信する1つのソリューションは、URLスキームを介することです」!

iOSのサンドボックスとは何ですか、あるアプリからiPhoneの別のアプリにデータを転送できますか、可能であればどのように

これにより、すべての iOS バックグラウンド モードが再開されます: http://www.raywenderlich.com/29948/backgrounding-for-ios

于 2013-10-29T16:36:29.180 に答える