suwu150
suwu150
采纳率44.3%
2016-06-30 08:18 阅读 1.2k
已采纳

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    sinat_26761191 sinat_26761191 2016-06-30 08:49

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

    点赞 评论 复制链接分享
  • suwu150 suwu150 2016-06-30 08:31

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

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

    点赞 1 评论 复制链接分享
  • sinat_26761191 sinat_26761191 2016-06-30 08:21

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

    点赞 评论 复制链接分享
  • sinat_26761191 sinat_26761191 2016-06-30 08:49

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

    点赞 评论 复制链接分享

相关推荐