7

finish()特定の条件が満たされた場合に呼び出しています。ただし、finish()ホームボタンを押した後でも、そこにアプリが表示されます。プロセスを強制終了することが望ましくない場合、どうすればよいですか?

これは私が呼んでいるところですfinish()

    protected void onStart() {
.............
if(today.equals("..."))
finish();

    };

終了するとアクティビティが終了することはわかっていますが、タスク マネージャーにまだ表示されているのはなぜですか? 私はそれを終えました。

4

5 に答える 5

10

finishAndRemoveTask()は、「このタスクのすべてのアクティビティを終了し、最近のタスク リストから削除します」というドキュメントに従って新しい API です。

if(android.os.Build.VERSION.SDK_INT >= 21)
{
    finishAndRemoveTask();
}
else
{
    finish();
}
于 2016-05-22T15:32:15.113 に答える
5

プロセスを強制終了することが望ましくない場合、どうすればよいですか?

ほとんどの場合、何もありません。

終了するとアクティビティが終了することはわかっていますが、タスク マネージャーにまだ表示されているのはなぜですか?

まず、プロセスがまだ実行されています。これは最適化であるため、ユーザーがすぐにアプリに戻ることを選択した場合、または他の何かがアプリ コード (例: AlarmManager) をトリガーした場合、Android は CPU とバッテリーを浪費して別のプロセスをすぐにフォークする必要はありません。Android は、これが適切であると判断した場合にプロセスを終了します。

「タスク マネージャー」と見なされるものによっては、プロセスが終了してもアプリがそこに表示される場合があることに注意してください。たとえば、HOME 長押しや RECENTS ボタンを押すと、処理が終了したタスクを含む「最近のタスク」が表示されます。

アプリケーションタスクマネージャーでアプリ内のプログレスバーを表示するのは、本当に専門的ではないようなものです

なぜあなたがそう思うのか私にはわかりません。そうは言っても、アクティビティをオーバーライドonCreateThumbnail()して、サムネイル画像に使用する別のものを返すことは大歓迎です。

于 2013-06-06T16:37:39.457 に答える
1

プロセスはSuspended 状態のままです:

 PID USER       VSZ STAT COMMAND
 --- ----       --- ---- -------
 5846 root         0 SW<  [ksdioirqd/mmc1]
 5853 u0_a76    306m S    {android.youtube} com.google.android.youtube
 5897 root      1852 S    /sbin/sh -
 5922 u0_a79    286m S    {om.me.mygdxgame} com.me.mygdxgame
 5947 u0_a49    278m S    {roid.dspmanager} com.bel.android.dspmanager
 5965 root      1844 R    ps -w

すべてのアクティビティが閉鎖されている場合でも。

十分なスペースがある場合は、RAM にロードしたままにしても害はありません。揮発性 RAM IC は、空または満杯の電力を消費します。中断されたプロセスは CPU を占有しません。これらのプロセスは、スペースが必要になると終了します。それまでは、迅速に再開でき、OS を高速化します。

実行中のプロセスを探す必要がある状況は次のとおりです。

  1. 管理が不十分な暴走スレッド。ループを実行するスレッドを開始し、それが終了することを知らず、その上でそれへのすべての参照を失います。
  2. 不適切に実装され、非常に頻繁にサービスが漏洩しました。システム管理者/サービスにサービスを登録し、登録解除を忘れている。
  3. システム プロセスは 経由Runtime.exec()で実行され、それらを呼び出すのを忘れてdestroy()います。

シンプルな Android コンポーネントを扱っており、そのライフサイクルを正しく実装している場合。内部プロセスについて心配する必要はありません。

于 2013-06-06T16:57:36.937 に答える