0

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