安卓中,如何获得home间的控制权,不能让用户强行退出程序,只能通过屏幕的点击进行操作??怎么设置?在屏幕中使用的是弹出框组件,不希望强行关闭程序,我使用的是 AlertDialog.Builder builder = new AlertDialog.Builder(this);,弹出对话框的方式
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.println("Page01 -->onKeyDown: keyCode: " + keyCode); if (KeyEvent.KEYCODE_HOME == keyCode) { System.out.println("HOME has been pressed yet ..."); // android.os.Process.killProcess(android.os.Process.myPid()); Toast.makeText(getApplicationContext(), "HOME 键已被禁用...", Toast.LENGTH_LONG).show(); } return super.onKeyDown(keyCode, event); // 不会回到 home 页面 }
这个对home的监听,你自己控制代码走向就可以了
重写父类home,back的方法,直接删掉父类的方法,这样用户按home,back键都木有效果,除非关机了,你就可以为所欲为的改的自己的逻辑了
package com.example.android_007_dialog;
import java.lang.reflect.Array;
import java.util.ArrayList;
import android.support.v7.app.ActionBarActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void alertClick(View v) {
//创建 一个提示对话框的构造者对象
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("询问对话框");//设置弹出对话框的标题
builder.setIcon(R.drawable.ic_launcher);//设置弹出对话框的图标
builder.setMessage("你吃早饭了吗?");//设置弹出对话框的内容
builder.setCancelable(false);//能否被取消
//正面的按钮(肯定)
builder.setPositiveButton("吃过了", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "那你还要不要再吃点吧", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
//反面的按钮(否定)
builder.setNegativeButton("没吃呢", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "那你就吃一点吧", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
//中立的按钮
builder.setNeutralButton("不要理你", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你倒是说一句话啊", Toast.LENGTH_SHORT).show();
// dialog.cancel();
}
});
builder.show();
}
}
以上是我的源代码。。。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("Page01 -->onKeyDown: keyCode: " + keyCode);
if (KeyEvent.KEYCODE_HOME == keyCode) {
System.out.println("HOME has been pressed yet ...");
// android.os.Process.killProcess(android.os.Process.myPid());
Toast.makeText(getApplicationContext(), "HOME 键已被禁用...",
Toast.LENGTH_LONG).show(); }
return super.onKeyDown(keyCode, event); // 不会回到 home 页面
} 这个对home的监听,你自己控制代码走向就可以了 排列一下文本