2

と のような 2 つのアプリケーションがActivityありServiceます。Serviceから始めActivityます。アクティビティを終了すると停止しますが、完全には停止せず、バックグラウンドで実行されています (Settings->ManageApplicationsメニューで確認できます)。そのため、アプリケーションを完全に終了するandroid.os.Process.killProcess(android.os.Process.myPid())in () 関数を使用しました。onDestroyしかし、問題は、アクティビティから開始されたため、サービスも停止することです。以下の行も使用してみました。

ActivityManager activityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
        activityManager.killBackgroundProcesses(this.getApplication().getPackageName());

しかし、ドキュメントに記載されているように、関連プロセスを停止するため、サービスを停止します。私の質問は、サービスを強制終了せずにアクティビティを完全に終了するにはどうすればよいかということです。事前にサンクス。

シナリオ


「a」と「b」という 2 つのアプリケーションがあるとします。finish()呼び出しを使用してアプリケーション 'a' を停止すると、'a' は正常に終了します。runningProcessInfoここで、呼び出しを使用して「b」から「a」のステータスを確認しましたが、アプリケーション「a」がバックグラウンドで実行されていることがわかりました。

4

1 に答える 1

6

私の質問は、サービスを停止せずにアクティビティを完全に終了するにはどうすればよいかということです。

呼び出しfinish()。これは、ユーザーが[戻る]を押すと自動的に発生します(デフォルト)。

アクティビティを終了すると停止しますが、完全には停止せず、バックグラウンドで実行されます([設定]-> [アプリケーションの管理]メニューで確認できます)

アプリケーションはアクティビティではありません。アプリケーションは、コンポーネントのコレクションです。あなたの場合、あなたのアプリケーションは、あなたの質問の情報に基づいて、少なくとも1つのアクティビティと少なくとも1つのサービスで構成されています。

そこで、onDestroy()関数で「android.os.Process.killProcess(android.os.Process.myPid())」を使用して、アプリケーションを完全に終了しました。

こんなことしないで。

于 2012-06-04T16:18:26.043 に答える