2

ワークライト 5.0.5 アンドロイド - 4.1

私は、ネイティブ コード ベースとハイブリッド コード ベースを単一のワークライト アプリケーションにマージする作業を行ってきました。その一環として、ランチャー アクティビティ launchMode を「標準」に更新して、アプリが再開されたときに、ユーザーが表示していた最後のアクティビティに基づいて、正しい Web ビューまたは別のアクティビティに復元できるようにしました。(ワークライトのデフォルト プロジェクトは「singleTask」に設定されています)

この構成は、Eclipse から直接デバイスにビルドする場合にうまく機能します。署名付き APK コピーをデバイスに作成してインストールすると、レジューム ライフサイクルの動作が異なります。エラーを作成する手順は次のとおりです

  1. アプリを起動
  2. アプリの状態を変更する
  3. ホームボタンを押します
  4. アプリケーションフォルダを開く
  5. アプリ アイコンをクリックします。結果 - アプリは onResume ではなく onCreate で実行されます

奇妙なのは、ホームを長押しして、最近使用したアプリからアプリを選択すると、通常どおり再開することです。(なぜ違うのでしょうか?)

最近 5.0.5 にアップグレードしましたが、この問題に気付いたのは今だけです。おそらく、新しい phonegap バージョンに関連していますか?

この問題は、新しい Worklight プロジェクトで簡単に再現できます。

  1. フレームワークなしで新しいプロジェクト ウィザードを使用します。
  2. Android アクティビティを変更する

    activity android:name=".SimpleWorklight"
              android:label="@string/app_name" 
              android:configChanges="orientation|keyboardHidden"
              android:launchMode="standard"
    
  3. マークアップを更新して、その状態を変更して onCreate と onResume を証明できるようにします

    <input type="submit" onclick="buttonClick()">
    <span id=label>SimpleWorklight</span>
    
    変数カウンター = 1; function buttonClick(){ document.getElementById("label").innerText="Clicked"+counter; カウンター=カウンター+1; }

この https://groups.google.com/forum/?fromgroups=#!topic/android-developers/UjWcsFMe6ikとかなり似ています

更新 - 同じテストを試みたところ、5.0.2.407-developer-edition Aaron Allsbrook で同じ結果が得られました

4

1 に答える 1

2

私はこの問題を解決しました。Androidのバグの可能性があります(またはAndroidの動作と同じように見えます)。アプリアイコンから起動すると、基本的に、既存のアクティビティがすでに存在する場合は、その上に新しいアクティビティが開始されます。ここで言及されているいくつかの可能な解決策があります。 http://code.google.com/p/android/issues/detail?id=2373

私は最初にonCreateメソッドに追加する最も簡単なアプローチを試しました

     if (!isTaskRoot()) {
         finish();
         return;
     }

しかし、これにより、cordovawebviewライブラリからNPEが返されました。Worklightを介してCordovaにデバッグするのではなく、 https://github.com/cleverua/android_startup_activityにあるソリューションを試しました。

実行中のすべてのタスクを確認するスタートアップAndroidアクティビティを作成する場所。実行中のタスクが見つかった場合は、新しいアクティビティを閉じて、実行中のアクティビティにフォールバックします。実行中のタスクが見つからない場合は、新しいインテントが作成され、移行されます。

于 2013-02-20T14:51:56.763 に答える