一项活动。当按下主页按钮时,它将运行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);
}
}
答案 0 :(得分:2)
您必须在UI线程中启动活动 - 而不是在任何线程中。在此处阅读更多内容:http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html
你可能想在那里寻找postDelayed ....
但是你可能不会真正得到你想要的东西 - 因为onPause()在许多不同的场合被调用(例如当你得到子活动时,或者当你从通知栏转到消息时)。你究竟想要实现什么目标?
答案 1 :(得分:1)
系统中现在有一些代码可以防止第三方应用程序在用户按下主页后“很快”弹出,因为这是一些应用程序用来滥用系统的技术。
Home是安全性的重要关键 - 它是用户知道如何访问他们信任的UI的唯一可靠方式 - 因此我们有许多方法可以防止应用程序导致用户访问当按下家时,某处不同。