1

savedInstanceState Bundle を手動で設定する方法はありますか?

onCreate で savedInstanceState バンドルが null にならない、savedInstanceState モードでアクティビティを開始する必要があります。私のポイントは、カスタム データを使用してアクティビティを復元することです。ありがとう

4

1 に答える 1

1

これにより、コードが判読不能になり、将来の維持が困難になります。さらに、プラットフォームのアーキテクチャに反対することになります。

正しいアプローチは、次のように、を開始するインテントでデータを送信するか、バンドルが null の場合はActivityすべてのデータを取得することです。onCreate

if(savedInstanceState == null)
    //Get data from db, resources etc.
else 
    //Do the restoring using the bundle, 
    //or just let it pass here and handle it in      
    //`onRestoreInstanceState`, both are correct

正しい方法でこれを行うにはもう少し時間がかかるという理由だけで、ハック修正を見つけようとしないでください。将来的に報われます!:-)

Intent補足として、一度にコンポーネント間で転送されるデータには 1 MB のクロスプロセス制限があるため、 を開始するActivityときに大量のデータを保持しないでください。

于 2016-10-24T12:45:03.363 に答える