自己恢复活动

时间:2011-06-25 22:27:01

标签: android android-activity timer runnable

一项活动。当按下主页按钮时,它将运行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);
    }
}

2 个答案:

答案 0 :(得分:2)

您必须在UI线程中启动活动 - 而不是在任何线程中。在此处阅读更多内容:http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

你可能想在那里寻找postDelayed ....

但是你可能不会真正得到你想要的东西 - 因为onPause()在许多不同的场合被调用(例如当你得到子活动时,或者当你从通知栏转到消息时)。你究竟想要实现什么目标?

答案 1 :(得分:1)

系统中现在有一些代码可以防止第三方应用程序在用户按下主页后“很快”弹出,因为这是一些应用程序用来滥用系统的技术。

Home是安全性的重要关键 - 它是用户知道如何访问他们信任的UI的唯一可靠方式 - 因此我们有许多方法可以防止应用程序导致用户访问当按下家时,某处不同。