安卓中,如何获得home间的控制权,不能让用户强行退出程序

安卓中,如何获得home间的控制权,不能让用户强行退出程序,只能通过屏幕的点击进行操作??怎么设置?在屏幕中使用的是弹出框组件,不希望强行关闭程序,我使用的是 AlertDialog.Builder builder = new AlertDialog.Builder(this);,弹出对话框的方式

4个回答

@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的监听,你自己控制代码走向就可以了

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();
}

}
以上是我的源代码。。。

重写父类home,back的方法,直接删掉父类的方法,这样用户按home,back键都木有效果,除非关机了,你就可以为所欲为的改的自己的逻辑了

sinat_26761191
sinat_26761191 回复suwu150: @Override public void onBackPressed() {}在这个使返回键的重写,你要是什么都不写,你的程序不会响应硬件的back
接近 4 年之前 回复
suwu150
suwu150 父类的home,back在哪里??菜鸟的我竟然不知道???
接近 4 年之前 回复

@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的监听,你自己控制代码走向就可以了 排列一下文本

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐