2016-04-08 11 views
0

Androidアプリケーションの終了に関するすべての質問をお読みしました。しかし私は私の問題に対する答えを見つけることができませんでした。Androidアプリケーションはどのように終了しますか?

私の問題は何ですか?私のアプリケーションはQt(C++/QML)で書かれた音楽プレーヤーです。私は特に私の車のためにそれを書いた。最初はWindows搭載のUMPCでしたが、現在はAndroid搭載のアフターマーケットヘッドユニットがあります。私は正常に私のプレーヤーをAndroidに移植しました。

次の問題を解決しようとしています。私の車を止めれば、ラジオの中のAndroidの「コンピュータ」もシャットダウンします。現在のトラックとトラックの進行状況を保存して、次回の起動時に再開できるようにしたいと思います。

私のアプリが終了して設定を保存する必要があるAndroidからの信号をキャッチすることは可能ですか?それとも、Androidは私にそれに反応する機会を与えずにアプリケーションを殺すのですか?

現在、私は10秒ごとに進捗状況をデータベースに保存しています。しかし、私はこれが理想的ではないと感じます。私は、アプリケーションがこれらの状況ではアンドロイドで閉鎖されている方法を知りたい:

1)アプリはバックグラウンドで動作していると、OSはそれがより多くのRAMを必要とし、それが 2)ユーザーが呼び出すメニューaを切り替えるアプリが離れ 自分のアプリケーションをスワイプ終了決定3)システムがシャットダウンする 4) "バッテリーセーバー"(タスクキラー)がアプリケーションを閉じる

私のアプリが終了する前に、これらの状況のいくつかに反応して何かをすることはできますか?

+0

んでしたあなたは 'onDestroy()'を試みますか? –

+0

私はC++で書いているので、私はこのシグナルを得ることができません。 – JeCh

答えて

1

enter image description here

あなたは(あなたはあなたがいることを使用する必要がありQMLを使用している言及)ApplicationWindowを使用している場合、それは簡単ですActivity life cycle

+0

OK、私はアプリケーションのJava部分を実装しようとし、onDestroy()シグナルを監視しようとします。 – JeCh

+0

しかし、ドキュメントによると、私のアプリは、とにかくonDestroyを呼び出さずに殺される可能性があります。では、システムがシャットダウンした場合、どういったことが起こりますか?この信号は放射されていますか?設定を保存する時間はありますか? – JeCh

+0

これを読んでみてくださいhttp://android-developers.blogspot.in/2010/04/multitasking-android-way.html –

0

にもっと理解するために、これを参照してください:

onClosing: { 
    saveYourSettings() 
    close.accepted = true 
} 
+0

残念ながら、それは簡単ではありません。これは、デスクトップOSで作業していなかった私の最初の試みでした。私はC + +の部分で "saveSettings"関数を呼び出す必要があります。しかし、設定が保存される前にアプリケーションが閉じられたり、エラーで終了したりすることがありました。最後に、QEvent :: Closeをキャッチし、アプリケーションが終了する前に設定を保存するeventFilterを実装しました。残念ながら、これはAndroidでは動作しません。 – JeCh

+1

QMLからC++関数を呼び出すことができ、コンテキストプロパティオブジェクトのメンバーとして公開するだけです。また、デスクトッププラットフォームでは期待通りに動作し、WindowsやLinuxでテストされます。 – dtech

+0

申し訳ありません私は完了する前に私のコメントを投稿しました。私はQMLからC++関数を呼び出す方法を知っていますが、逆に、これはうまくいきません。私はAndroidや他のモバイルOSを除いてどこでも動作するソリューションを見つけました。これはデスクトップのデスクトップとアプリのライフサイクルが異なるからです。 – JeCh

関連する問題