2016-09-20 4 views
1

一部のChromebookではベータ版でGoogleプレイが実行されます。 Chromebookにアプリケーションをダウンロードした後、この問題が発生しました。アプリケーションのアクティビティが再起動されるたびに「最大化」ボタンが押されます。もちろん、私は自分のアプリケーションをChrome OSと互換性を保ちたい。私はそれがうまく動作するアンドロイドデバイス上で、どこに問題があるか分からない。「最大化」ボタンを押すたびにChrome OSのAndroidアプリが再起動します

この問題はよくアンドロイドスタジオ(私はバージョン1.5を使用)で作られたシンプルなハロー世界のプロジェクトに再現することができます。

Androidのスタジオ・プレスで

、「新しいAndroid Studioのプロジェクトを開始し、」名前の横押しを埋めます。 API 8+との互換性を設定し、空のアクティビティを選択します。

Toast.makeText(this, "Recreated", Toast.LENGTH_SHORT).show(); 

たAPKは、クロームのOS上でテストすることができます:プロジェクトは、私はシンプルなトーストメッセージを追加したのonCreateに分SDK 8とターゲットSDK 23に設定されています。押すたびに「最大化」ボタンが表示され、「再作成」メッセージが表示されます。

私はAndroidManifest.xmlに何もしませんでした。しかし、私は旗をテストした:

 android:configChanges="orientation|keyboardHidden" 
     android:windowSoftInputMode="adjustResize" 

成功なし。ここで

は、私の活動のコードがどのように見えるかです:

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toast.makeText(this, "Recreated", Toast.LENGTH_SHORT).show(); 
} 

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 
    Toast.makeText(this, "onConfigurationChanged", Toast.LENGTH_SHORT).show(); 
} } 

私はonConfigurationChangedイベントが、私はボタンを「最大化」を押すたびにトリガされますが、代わりにonCreate()と呼ばれていたことを期待しました。

「最大化」ボタンを押すたびにアクティビティが再起動されないようにするために必要なことをしてください。そしてその "サイズ変更"イベントを処理する方法。

答えて

0

マニフェストのアクティビティにandroid:configChanges="orientation|keyboardHidden|screenLayout|screenSize|smallest‌​ScreenSize"を使用すると役立ちます。

ただし、残念ながら、設定変更による活動の停止が推奨されています。

+0

ありがとう、私は "screenSize"で試しましたが、動作しません。マニフェストで "orientation | keyboardHidden | screenSize"を指定すると、Androidデバイスでアクティビティが再起動されませんが、Chrome OSで再作成されます...本当に再起動する必要がある場合は、すべてのデータを静的変数に保存してから、 "onCreate"のビュー。これは、すべてのビュー、構造体などの初期化を意味します。大きなオーバーヘッド...回避策がいくつかあります。 – user1063364

+0

最初に "mcc"、 "mnc"、 "locale"、 "touchscreen" "キーボード"、 "keyboardHidden"、 "navigation"、 "screenLayout"、 "fontScale"、 "uiMode"、 "orientation"、 "screenSize"、 "smallestScreenSize"、 "density" :) –

+0

ハァッ、完璧なアイデア: )正しい設定は、 "orientation | keyboardHidden | screenLayout | screenSize | smallestScreenSize"です。 screenLayoutまたはsmallestScreenSizeを削除した場合は機能しません。しかし、 "再作成"は今は一度だけ表示され、 "最大化"を押すたびに "onconfiguration"メッセージが表示されます。私は今、アーク溶接機でそれをテストしましたが、できるだけ早くChromebookでチェックします。ここに最終結果を書きます。どうもありがとうございました。 – user1063364

関連する問題