2

私のAndroidアプリは、ユーザーが停止できる唯一の方法は、電話の戻るキーを押すことです。そのキーがヒットすると、実際に onStop イベントが実行され、log コマンドがあり、super.onStop(); を実行します。

でもアプリは止まりません。これは、頻繁にオフになるタイマーがあり、デバッグ エントリを含む電子メールが送信されるためです。

(メールを送信するサーバーへの投稿を介してではなく、電話を介してメールを送信しません)。

「アプリを停止」した後も、1 日中メールを受信し続けます。確実にまだ実行されています。

電話(Galaxy S3)の「実行中」のアプリを調べると、リストに表示されていませんが、アプリのプロパティを見ると、「強制終了」が有効になっています。「強制終了」を押すと、アプリはメールの送信を停止します。

このアプリを停止するにはどうすればよいですか?

ありがとう、ゲイリー

これが私の編集です。. .

以下のタイマーは、REST サービスと通信する asynctask を呼び出す getRTlegsFromServer を実行します。DebugLog は、別の REST サービスを介してメールを送信します。これはすべて非常にうまく機能し、実際、非常にうまく機能しているため、停止することはできません。メールで「onStop イベント」を受け取り、その後、電話で強制停止するまで、1 日中、さらに DebugLog メッセージを受け取ります。

    timer = new Timer();
    timer.schedule(new TimerTask()
    {
        @Override
        public void run()
        {
            TimerMethod();
        }
    }, 0, 10*1000);  


private void TimerMethod()
    {
        //debugLog("TimerMethod is executing", false);  


        runOnUiThread(new Runnable()
        {
            @Override
            public void run()
            {

                if (timeForAnother == true)
                {
                    getRTlegsFromServer();
                }
                else
                {
                    DebugLog.debugLog("NOT making server call because timeForAnother is false", false);
                }

            }
        });

    }

    @Override
    public void onStop()
    {
        DebugLog.debugLog("onStop event ", true);
        //timer.cancel();
        super.onStop();
    }

timer.cancel() は、NullPointerException を取得するため、コメント アウトされています (停止しようとしています)。KillProcess ソリューションが悪い考えであることを他のスレッドで読みました。このアプリはサービスを使用しません。

4

3 に答える 3