Android:Openキーによる問題!!
1168 ワード
1.質問の概要
まず問題を説明します.アプリをインストールした後、インタフェースには2つのボタン、1つの完了キー、1つのOpenキーが表示され、Openキーをクリックした後、アプリケーションに入ります.このとき、HOMEキーをクリックすると、プログラムがバックグラウンドになります.その後、このデスクトップ上のアプリケーションのアイコンをクリックすると、巨大なBUGが表示されます:appが再起動します!元のインタフェースをonresumeするのではなく!もしあなたのアプリケーションが複数回の起動に敏感でないならば、これは何もありませんが、もしあなたのアプリケーションが複数回の起動に敏感であれば、あなたは処理しなければなりません.
2.ソリューション
まず問題の原因を分析し,androidの現在のシステム(最新は4.4.3)では,Openキーのクリックとアイコンのクリックで起動すると,Intentのパラメータ伝達が異なりactivityの起動方式が異なり,上記の問題が発生する.しかし、起動パラメータがシステムで設定されているため、変更することはできません.私たちの考えは2つあります
1.2回目の起動時に、1回目の起動を殺す
2.2回目の起動時に、1回目の起動のActivityを起こし、2回目の起動を閉じる.
一般的に2つ目を選びます.そのため、私たちは次のような考えを持っています.
1.最初のActivityを起動するときに、起動方式がOPENキーをクリックして起動するか否かを判断する.
2.起動が必要なactivityにBroadcastReceiverを登録し、ブロードキャストを受信した後、独自のonResumeメソッドを呼び出す.
最初のActivityのonCreateメソッドに追加されたコードは次のとおりです.
問題は完璧に解決された.
まず問題を説明します.アプリをインストールした後、インタフェースには2つのボタン、1つの完了キー、1つのOpenキーが表示され、Openキーをクリックした後、アプリケーションに入ります.このとき、HOMEキーをクリックすると、プログラムがバックグラウンドになります.その後、このデスクトップ上のアプリケーションのアイコンをクリックすると、巨大なBUGが表示されます:appが再起動します!元のインタフェースをonresumeするのではなく!もしあなたのアプリケーションが複数回の起動に敏感でないならば、これは何もありませんが、もしあなたのアプリケーションが複数回の起動に敏感であれば、あなたは処理しなければなりません.
2.ソリューション
まず問題の原因を分析し,androidの現在のシステム(最新は4.4.3)では,Openキーのクリックとアイコンのクリックで起動すると,Intentのパラメータ伝達が異なりactivityの起動方式が異なり,上記の問題が発生する.しかし、起動パラメータがシステムで設定されているため、変更することはできません.私たちの考えは2つあります
1.2回目の起動時に、1回目の起動を殺す
2.2回目の起動時に、1回目の起動のActivityを起こし、2回目の起動を閉じる.
一般的に2つ目を選びます.そのため、私たちは次のような考えを持っています.
1.最初のActivityを起動するときに、起動方式がOPENキーをクリックして起動するか否かを判断する.
2.起動が必要なactivityにBroadcastReceiverを登録し、ブロードキャストを受信した後、独自のonResumeメソッドを呼び出す.
最初のActivityのonCreateメソッドに追加されたコードは次のとおりです.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// , Activity
finish();
return;
}
// Regular activity creation code...
}
問題は完璧に解決された.