0

これは、このトレーニング チュートリアルからコピーして貼り付けたテキストです。

「システムは停止時にアクティビティ インスタンスをシステム メモリに保持するため、onStop() および onRestart() (または onStart() メソッドさえも) まったく実装する必要がない可能性があります。ほとんどのアクティビティでは、比較的シンプルで、アクティビティは正常に停止して再起動し、onPause()を使用して進行中のアクションを一時停止し、システム リソースから切断するだけでよい場合があります。」

わかりません。私の知る限り、アクティビティは onStop() を呼び出すことによってのみ停止され、onStart() を呼び出すことによってのみ開始されます。onStart メソッドなしでアクティビティを開始するにはどうすればよいでしょうか。

この段落の意味を理解していますか?

4

4 に答える 4

2

段落内で複数の意味を持っているように見える「停止」という言葉であなたを混乱させていると思います.

私はそれを次のように言い換えます

Activity インスタンスがフォアグラウンドにない場合、システムはシステム メモリに Activity インスタンスを保持するため、 onStop() および onRestart() (または onStart() メソッドさえも) まったく実装する必要がない可能性があります。比較的単純で、アクティビティは問題なく一時停止して再起動し、 onPause() を使用して進行中のアクションを一時停止し、システム リソースから切断するだけでよい場合があります。

要点は、アプリが停止しているように見えることがありますが、実際には、システムがアプリを一時停止して画面から隠しているだけです。ユーザーが再度起動すると、アプリを起動する必要がないため (技術的には停止していないため)、単純に再開されます。

于 2013-11-05T15:46:36.393 に答える
1

アクティビティを作成し、基本クラスのアクティビティを拡張すると、基本クラスのonStop()、onStart()、および onRestart()メソッドにコードが既に存在します。

アクティビティは単にこれらのメソッドを拡張するだけです。つまり、それらをオーバーライドすることでさらにコードを追加できます。

したがって、アクティビティはこれらのメソッドを介してのみ開始および停止されますが、アプリケーションで明示的にオーバーライドする必要はありません。ほとんどの場合、それらについて心配する必要さえありません。これらは、拡張元の基本クラスによって呼び出されます。

于 2013-11-05T15:43:13.787 に答える
1

アクティビティが onCreate メソッドから開始され、次に onStart がシステムによって呼び出されることを確認してください。onStart メソッドをオーバーライドすると、オーバーライドされたメソッドも onCreate メソッドの後に呼び出されます。をオーバーライドしない場合、onStart のデフォルト バージョンが呼び出されます。

onStop は onPause の後に呼び出されます。

このリンクをチェックして、アクティビティのライフサイクルを見てください。あなたのコンセプトが明確になります。 onCreate() と onStart() の違いは?

于 2013-11-05T15:48:17.693 に答える
0

なしでアクティビティを問題なく使用できます- onPause() で何か特別なことをする必要がある場合は、メソッドをオーバーライドできます。

@Override
public void onPause(){
    super.onPause();

    // Your magic here!

}

同じことが onStart() 、 onStop() などにも当てはまります。メソッドをオーバーライドする必要はありませんが、特定のことを行う必要がある場合はオーバーライドできます。

于 2013-11-05T15:42:44.777 に答える