4

iPhoneアプリで次の機能を取得しようとしています。

  • バックグラウンドで実行されている場合、実行を継続します(バックグラウンド作業を行う必要はありません)
  • 再開すると、アプリは中断したところから再開します

UITabBarController内にいくつかのUINavigationControllerがあるため、主にアプリで同じ画面を表示したいです。

私は次のすべてを行いました:

  • 4.1SDKでコンパイルしていることを確認しました
  • UIApplicationExitsOnSuspendをfalseに設定します
  • AppDelegateでDidEnterBackgroundとWillEnterForegroundを処理します
  • DidEnterBackgroundでBeginBackgroundTaskを呼び出して、アプリを開いたままにしておくようにします

私はMonoTouchを使用していますが、それはおそらく重要ではありません。確かに、Obj-Cで答えを出すことができます。

バックグラウンダーを使用してジェイルブレイクされた電話でアプリをテストしましたが、ホームボタンを押すとすぐに「バックグラウンドのアプリ」バッジが消えます。Info.plistでUIBackgroundModesを設定しようとしましたが、役に立ちませんでした。

足りないものはありますか?

または、これは、アプリの以前の状態を再開するために自分で実装する必要があるものですか?話を読んだところはどこでも、自動的に機能するはずです。

4

4 に答える 4

1

バックグラウンドで作業を行いたくない場合は、beginBackgroundTaskを呼び出さないでください。その呼び出しは、バックグラウンドで何らかの作業を行いたい状況のためのものです。そして、あなたがその仕事を十分に速く終わらせなければ、iOSはあなたのアプリを終了させます。

于 2010-11-15T20:55:27.670 に答える
1

iOS 4.xにアップグレードすると、MTアプリケーションは何もしなくてもこの動作を示し始めました。iOSがあなたに代わってそれを処理する必要があります。

于 2010-11-15T21:15:24.697 に答える
1

私はついにMonoTouchのircで誰かと連絡を取りました。

MonoDevelopには、私が使用したiPad/iPhoneのデュアルプロジェクトを作成するオプションがあります。これにより、デバイスにデプロイしたときに、アプリが3.2SDKで実行されているかのように動作します。

私の解決策は、発売されたばかりのiOS 4.2 SDKをインストールすることだと思います。これは、iPadに新しいマルチタスク機能を宣伝しているからです。

于 2010-12-02T14:11:27.290 に答える
0

バックグラウンドへの移行をサポートする必要があるだけでなく、アプリが終了した場合もサポートする必要があります。アプリの初期化コードで、元の状態を再開する必要があります。たとえば、View Controllerを押すと、を使用NSUserDefaultsして現在表示されている画面の値を保存し、次にその値を読み取り始めて、関連する値を表示します。画面。

于 2010-11-15T21:39:49.207 に答える