0

1 つの活動。ホームボタンを押すと、OnPause メソッドが実行され、5 秒後にアクティビティが表示されます。これは私が欲しいものですが、できませんでした。私の間違いは何ですか?

package cem.examples.listviewActivity;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

public class main extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    protected void onPause() {
        super.onPause();
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {

            @Override
            public void run() {
                Toast.makeText(main.this, "Timer RUN", Toast.LENGTH_SHORT).show();
                new Runnable() {

                    @Override
                    public void run() {
                        Toast.makeText(main.this, "5000 msec ok", Toast.LENGTH_SHORT).show();
                        Intent intt = new Intent(main.this, main.class);
                        intt.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(intt);
                    }
                };
            }

        }, 5000);
    }
}
4

2 に答える 2

2

どのスレッドでもなく、UI スレッドでアクティビティを開始する必要があります。詳細はこちら: http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

おそらくそこで postDelayed を探したいと思うでしょう....

ただし、 onPause() はさまざまな機会に呼び出されるため (たとえば、サブアクティビティを取得したときや、通知バーからメッセージに移動したときなど)、実際に必要なものを取得することはできません。あなたが達成したいことは正確には何ですか?

于 2011-06-25T23:15:29.873 に答える
1

ユーザーがホーム キーを押した直後にサード パーティのアプリケーションがポップアップするのを防ぐコードがシステムに追加されました。

ホームはセキュリティにとって重要な鍵です。ユーザーが信頼する UI にアクセスする方法をユーザーが知る唯一の確実な方法です。ホームが押されます。

于 2011-06-26T03:41:23.717 に答える