2017-10-05 13 views
0

私は画像をスキャンして写真を撮るアクティビティを持っています。私はこれらの画像をスキャンするためにVuforiaライブラリを使用していますが、カメラを扱うコードの実装を制御することはできません。アクティビティをシングルトンとして保持する方法

このアクティビティは、アプリのライフサイクルで複数回表示する必要がありますが、毎回カメラを起動するにはしばらく時間がかかります。

このアクティビティのインスタンスを1つしか保持できない方法はありますか?カメラを一時停止するだけで済むので、カメラのローディング時間が短くなります。

このアクティビティをどこかに保存して、必要なときに表示したり、画面上に保持する方法を他のアクティビティの背後に置いたりします。

+0

もし私がそれを持っていれば...私はあなたが活動開始モードを使う必要があると思う。 –

答えて

1

singleTask launchModeを試すことができます。このlaunchModeのアクティビティーは、システム内に1つのインスタンスのみを持つことができます。ドキュメントから

<activity 
    android:name=".YourActivity" 
    android:label="activity name" 
    android:launchMode="singleTask"> 

システムは、新しいタスクとルート それへの意思のルートに活動を作成します。ただし、アクティビティのインスタンスがすでに に存在する場合、システムは新しいインスタンスを作成するのではなく、そのonNewIntent()メソッドを呼び出すことによって、インテントを既存のインスタンスにルーティングします( )。

+0

これは私の唯一の欲しい活動の私のマニフェストに置きますか?そして、私がこの活動の意図を始めるたびに、同じものが現れますか?そのアクティビティを閉じるにはどうしたらいいですか? 'finish()'はアクティビティを終了するだけです。 – vrwim

+0

はい、マニフェストで一度だけ追加する必要があります。アクティビティを開始するたびに、古いアクティビティが使用されます。 'onNewIntent()'の意図を処理する必要がある点を除いて、すべて同じです。 –

+0

これを元の状態に戻すにはどうしたらいいですか? finish()を使用できません – vrwim

関連する問題