日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android监听后台状态,退出即杀死并显示退出提示框

發布時間:2025/3/21 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android监听后台状态,退出即杀死并显示退出提示框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、當界面不可見時釋放內存
@Overridepublic void onTrimMemory(int level) {super.onTrimMemory(level);switch (level) {//TRIM_MEMORY_UI_HIDDEN表示當用戶點擊了Home鍵或者Back鍵導致應用的UI界面不可見case TRIM_MEMORY_UI_HIDDEN:SetLED(false);System.exit(0);//break;}}
二、在Activity中重寫onBackPressed()方法監聽返回鍵
@Overridepublic void onBackPressed() {//此處寫退向后臺的處理SetLED(false);System.exit(0);}
三、監聽返回鍵,彈出提示對話框
public boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif(keyCode == KeyEvent.KEYCODE_BACK) {new AlertDialog.Builder(this).setTitle("提醒").setMessage("是否退出!").setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {SetLED(false);System.exit(0);}}).setNegativeButton("取消",null).show();}return false;}
四、點擊兩次返回鍵,提示是否退出
eg:1
//定義一個變量,來標示是否退出private static boolean exit=false;Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);exit=false;}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode==KeyEvent.KEYCODE_BACK){exits();return false;}return super.onKeyDown(keyCode,event);}public void exits(){if(!exit){exit=true;Toast.makeText(this, "再按一次退出程序",Toast.LENGTH_SHORT).show();//利用handle延遲發送更改狀態信息handler.sendEmptyMessageDelayed(0,3000);}else{finish();System.exit(0);}}
eg:2
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif(keyCode == KeyEvent.KEYCODE_BACK){exitBy2Click(); //調用雙擊退出函數}return false;}//雙擊退出函數private static Boolean isExit = false;private void exitBy2Click() {Timer tExit = null;if (isExit == false) {isExit = true; // 準備退出Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();tExit = new Timer();tExit.schedule(new TimerTask() {@Overridepublic void run() {isExit = false; // 取消退出}}, 2000); // 如果2秒鐘內沒有按下返回鍵,則啟動定時器取消掉剛才執行的任務} else { // finish();SetLED(false);System.exit(0);}}
eg:3
private long exitTime = 0;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if ((System.currentTimeMillis() - exitTime) > 2000) {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {SetLED(false);jwsobject.jwsSetStatusBar(Main2Activity.this, true);finish();System.exit(0);}return false;}return super.onKeyDown(keyCode, event);}
五、 在進程中去尋找當前APP的信息,判斷是否在前臺運行
private boolean isAppOnForeground() {//獲取運行中的應用信息ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);//取得包名String packageName = getApplicationContext().getPackageName();//獲取該設備上應用程序進程列表List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();if (appProcesses == null)return false;//后臺for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {if (appProcess.processName.equals(packageName) && appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {//根據包名殺死對應進程activityManager.killBackgroundProcesses(packageName);return true;//前臺}}return false;//后臺}
六、監聽對話框里面的button點擊事件
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener(){public void onClick(DialogInterface dialog, int which){switch (which){case AlertDialog.BUTTON_POSITIVE:// "確認"按鈕退出程序finish();break;case AlertDialog.BUTTON_NEGATIVE:// "取消"第二個按鈕取消對話框break;default:break;}}};@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event){if (keyCode == KeyEvent.KEYCODE_BACK ){ // // 創建退出對話框 // AlertDialog isExit = new AlertDialog.Builder(this).create(); // // 設置對話框標題 // isExit.setTitle("系統提示"); // // 設置對話框消息 // isExit.setMessage("確定要退出嗎"); // // 添加選擇按鈕并注冊監聽 // isExit.setPositiveButton("確定",null); // isExit.setNegativeButton("取消", listener); // // 顯示對話框 // isExit.show();new AlertDialog.Builder(this).setTitle("系統提示").setMessage("確定要退出嗎").setPositiveButton("確定", listener).setNegativeButton("取消", listener).show();}return false;}

總結

以上是生活随笔為你收集整理的Android监听后台状态,退出即杀死并显示退出提示框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。