精华内容
下载资源
问答
  • 怎么设置app不退出
    千次阅读
    2018-06-22 10:42:20

    程序在运行过程中,可能会由于某种原因而被干掉或者自己崩溃掉,为了增加可靠性,一般的做法就是在系统启动之后,自动起一个看门狗程序,来时刻看守应用程序。

    由于本人对android也不是很精通 所以想到了以下办法,直接上代码

    import android.app.ActivityManager;
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.content.pm.PackageInfo;
    import android.content.pm.PackageManager;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    
    import java.util.List;
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class MainActivity extends AppCompatActivity {
    
        String m_sMonitorAppName = "app"; //要监测的App的包名
    
        //这里我起了一个线程
        /*********************************************************************/
        class MyThread  implements Runnable {
            public void  run(){
                while(true){
                    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
                    List<ActivityManager.RunningAppProcessInfo> runningTasks = manager.getRunningAppProcesses();
    
                    // 获得当前最顶端的任务栈,即前台任务栈
                    ActivityManager.RunningAppProcessInfo runningTaskInfo = runningTasks.get(0);
                    String packageName = runningTaskInfo.processName.toString();
    
                    if(!packageName.equals(m_sMonitorAppName)){
    
                        PackageManager packageManager = getPackageManager();
                        PackageInfo packageInfo = null;
                        //在这里,该App虽然没在前台运行,也有可能在后台运行(未被结束),
                        //为了更合理,应该先结束掉,但是注释的方法总是崩溃..........
                        //android.os.Process.killProcess(runningTaskInfo.pid); //结束进程
    
                        try {
                            packageInfo = getPackageManager().getPackageInfo(packageName, 0);
                        } catch (PackageManager.NameNotFoundException e) {
                            e.printStackTrace();
                        }
    
                        if(packageInfo != null){
                            Intent intent = packageManager.getLaunchIntentForPackage(m_sMonitorAppName);
                            startActivity(intent);//启动App
                        }
    
                    }
    
                    try {
                        Thread.sleep(3000); //延时3s
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                }
    
            }
        }
    /*********************************************************************/
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            /*
            TimerTask task= new TimerTask() {
                @Override
                public void run() {
                }
            };
            new Timer().schedule(task,2000,3000);
            起初,没想用线程,想用一个定时器来看守,怎想,一直崩溃
            */
    
            MyThread startThread = new MyThread();
            new Thread(startThread ).start(); //启动线程
    
        }
    }
    
    // fest.xml文件加权限  <uses-permission android:name="android.permission.GET_TASKS"/>

    上面的方法 经过初步测试 可以达到预期的作用
    但是有没有漏洞还不知道 望各位指正

    更多相关内容
  • android 退出app 退出应用程序

    热门讨论 2013-03-18 17:49:10
    退出activity时,设置intent.setAction("exit_app");然后跳转到栈底activity, 这样就可以清除栈底之外的所有activity,程序会自动执行onNewIntent方法,在该方法中获取它action, 如果等于"exit_app",则关闭栈底...
  • app自动化打开设置退出

    千次阅读 2022-03-23 20:26:18
    app自动化打开设置退出

    前提环境:jdk jre 安卓sdk python环境 Pycharm中已安装Appium-python-client
    选择代码 点击运行

     如果解释器不对 或者没有更换 点击

    选择已安装Appium-python-client的解释器 
    运行代码即可

    移动端后自动打开设置界面然后返回退出

    展开全文
  • Flutter 返回桌面不退出app 1.MainActivity(kotlin版本的),之前的getFlutterView()提示找到,改为flutterEngine.dartExecutor.binaryMessenger import androidx.annotation.NonNull import io.flutter....

    Flutter 返回桌面不退出app

    • 1.MainActivity(kotlin版本的),之前的getFlutterView()提示找不到,改为flutterEngine.dartExecutor.binaryMessenger
    import androidx.annotation.NonNull
    import io.flutter.embedding.android.FlutterActivity
    import io.flutter.embedding.engine.FlutterEngine
    import io.flutter.plugin.common.MethodChannel
    import io.flutter.plugins.GeneratedPluginRegistrant.*
     
    class MainActivity: FlutterActivity() {
        //通讯名称,回到手机桌面
        private val CHANNEL = "android/back/desktop"
        override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
            registerWith(flutterEngine);
            MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { methodCall, result ->
                if (methodCall.method == "backDesktop") {
                    result.success(true)
                    moveTaskToBack(false)
                }
            }
        }
    }
    
    
    import android.os.Bundle;
    import io.flutter.app.FlutterActivity;
    import io.flutter.plugins.GeneratedPluginRegistrant;
     
    import android.view.KeyEvent;
    import io.flutter.plugin.common.MethodCall;
    import io.flutter.plugin.common.MethodChannel;
     
    public class MainActivity extends FlutterActivity {
    	//通讯名称,回到手机桌面
    	private  final String CHANNEL = "android/back/desktop";
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		GeneratedPluginRegistrant.registerWith(this);
    		new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
    			new MethodChannel.MethodCallHandler() {
    				@Override
    				public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {
    					if (methodCall.method.equals("backDesktop")) {
    						result.success(true);
    						moveTaskToBack(false);
    					} 
    				}
    			}
    		);
    	}
    }
    
    • 2.flutter中添加一个自定义dart类
    // dart类
    import 'package:flutter/services.dart';
     
    class AndroidBackDesktop{
      //通讯名称,回到手机桌面
      static const String CHANNEL = "android/back/desktop";
      //设置回退到手机桌面事件
      static const String eventBackDesktop = "backDesktop";
     
      //设置回退到手机桌面方法
      static Future<bool> backToDesktop() async {
        final platform = MethodChannel(CHANNEL);
        //通知安卓返回到手机桌面
        try{
          await platform.invokeMethod(eventBackDesktop);
          print("通信成功");
        }
        on PlatformException catch (e){
          print("通信失败,设置回退到安卓手机桌面失败");
          print(e.toString());
        }
        return Future.value(false);
      }
    }
    
    
    • 3.类中使用:(在main.dart中使用不起效果,可能用了底部导航,于是添加到底部导航这里)
     @override
      Widget build(BuildContext context) {
        return WillPopScope(
          onWillPop: () async {
            AndroidBackDesktop.backToDesktop(); //设置为返回不退出app
            return false; //一定要return false
          },
          child:Text('fdsa'),
        );
      }
    
    展开全文
  • 一:在 Flutter 中如何退出 APP。 二:在 Flutter 中设置一定时间时隔内退出 APP 的功能。

    这是【Flutter 问题系列第 24 篇】,如果觉得有用的话,欢迎关注专栏。

    如果当前是在登录或者注册界面,用户点击退出事件时,一般都会做退出 APP 的功能,那么在 Flutter 中如何实现呢?

    方式一

    也是推荐的方式,所以放在了第一位,引入 import 'package:flutter/services.dart'; ,在退出事件中调用下面代码就可以了。

      /// 退出 APP 方式一
      void _doQuit() async {
        await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
      }
    

    方式二

    需要引入 import 'dart:io'; 同样是在退出事件中调用下面代码即可。

      /// 退出 APP 方式二
      void _doExit() {
        exit(0);
      }
    

    实现两秒内多次点击退出按钮时,退出 APP

    不过往往并不是用户点击退出 APP 时就直接退出了,而是先给出一个提示,提示用户再点一次将要退出 APP。

    所以我们设定当用户在两秒内点了两次退出,就认为用户在执行退出 APP 的操作。

    首先定义一个 DateTime 类型的变量 _lastTime

    DateTime _lastTime; // 上次点击退出当前页面的时间
    

    通过判断两次点击的时间差来决定是否执行退出 APP 操作,如下代码

      void _doQuit() async {
        // 两秒内没有再点过退出按钮
        if (_lastTime == null || DateTime.now().difference(_lastTime) > Duration(seconds: 2)) {
          // 重置最后一次点击的时间
          _lastTime = DateTime.now();
          // 弹出吐司,需引入插件 bot_toast,当然其它的吐司插件也行
          BotToast.showText(text: "再按一次退出APP", align: Alignment.center);
        }
        // 两秒内点了两次退出按钮,则退出 APP
        else {
          await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
        }
      }
    

    第一次点击时间间隔为2秒以上,第二次点击时间间隔为2秒内,最终的效果图如下所示

    至此,在 Flutter 中退出 APP 的两种方式,以及在一定时间时隔内退出 APP 的功能便介绍完毕。

    你的问题得到解决了吗?欢迎在评论区留言。

    赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


    结束语

    Google 的 Flutter 越来越火,截止 2021年6月23日 GitHub 标星已达 123K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。

    无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。
    展开全文
  • 创作时间:2021-01-29 标题: 【视频讲解】MATLAB appdesigner神招数005_如何退出界面前再确认(防止手误退出)? 目录: 无 正文: THE END~
  • 如果APP需要后台驻留,用户返回到首页时会提示退出操作,我们可以不退出而是隐藏至后台,这样的话APP就会在后台运行,以下代码须写在main.js里面,弹出的内容可自定义设置。 let main = plus.android....
  • 彻底杀掉 App 相关进程的代码public void killAppProcess(){//注意:能先杀掉主进程,否则逻辑代码无法继续执行,需先杀掉相关进程最后杀掉主进程ActivityManager mActivityManager = (ActivityManager)Current...
  • 安卓一键退出APP

    千次阅读 2020-08-26 11:30:47
    安卓一键退出App 1、安卓退出程序有几种方法 首先要实现两个步骤 退出当前所有的activity 结束当前APP的进程 2、怎么退出所有的Activity 百度找了很多的资源,网上使用的方法有很多中,我使用的是每当Activity创建...
  • uni-app 退出app操作

    千次阅读 2020-03-31 10:00:35
    uni-app 退出app //安卓退出 // #ifdef APP-PLUS if (plus.os.name.toLowerCase() === 'android') { plus.runtime.quit(); } else{ const threadClass = plus.ios.importClass("NSThread"); const ...
  • uniapp同意使用,同意退出APP

    千次阅读 2020-07-02 16:37:04
    用户同意就会退出APP。同意了就跳转到首页。 那怎么才能判断用户下载APP,是否有同意使用呢。并且用户卸载重装后仍然会提示用户同意。 我们可以在用户点击同意时,保存一个关键词在本地。根据这个关键词是否存在...
  • uniapp app退出应用

    千次阅读 2021-12-15 14:48:11
    uni-app App退出应用
  • uniapp 电商app 退出app功能实现

    千次阅读 2020-10-12 14:48:40
    这个退出app是app退出到后台运行,而不是退出当前账号。 为了兼容安卓与IOS,退出功能代码如下: // #ifdef APP-PLUS if (plus.os.name.toLowerCase() === 'android') { plus.runtime.quit(); }else{ const ...
  • android中彻底退出App的办法

    万次阅读 2019-05-15 15:30:20
    所谓的“彻底退出App”的含义是包括释放所有App new出来的东西,比如说某些正在运行的线程、定时器之类的。 需要注意的是:finish()方法是作用于Activity,因此,即使finish了app的最后一个Activity,app在运行...
  • 由于onbackPress在app生效,于是用js的方式去做了拦截,实现了点击物理返回键返回上一页,而不是退出app。(提示:代码放在main.js文件中,不要乱放) // android点击手机物理返回键退出app bug解决 document....
  • App整体设置activity的进入退出动画

    千次阅读 2016-12-30 20:16:03
    App整体设置activity的进入退出动画 resources>    style name="AppTheme" parent="Theme.AppCompat">    item name="android:windowContentTransitions">trueitem>  item name="colorPrim
  • //清除 } 再按一次退出 App // 再点一次退出程序时间设置 private long TOUCH_TIME = 0L; //当前时间与上次点击返回键的时间差 private static final long WAIT_TIME = 2000L; @Override public boolean onKeyDown...
  • App退出想在任务管理器列表中显示,只需要在AndroidManifest.xml中的启动Activity添加 android:excludeFromRecents=“true” true:在任务管理器列表显示 false:在任务管理器列表显示
  • uni-app怎么实现双击返回退出app

    千次阅读 2019-12-03 15:10:17
    uni-app提供了一个监听返回按钮的api:onBackPress(event) //监听返回键 onBackPress() { uni.showModal({ title: '提示', content: '是否退出来聊?', success: function(res) { if (res....
  • Android 完全退出app程序

    千次阅读 2020-11-10 15:39:48
    Android 完全退出app程序(保留历史打开app记录) finishAndRemoveTask();//该方法在API level 21之后添加。 System.exit(0); android.os.Process.killProcess(android.os.Process.myPid());
  • Android App退出检测

    万次阅读 2017-03-20 20:05:59
    app退出检测是很难的,但是获取app“要退出”的状态就容易多了,退出的瞬间并不是真的退出了,ActivityManager要销毁activity,也需要一些时间和资源的。 先见下面的运行效果: gif做的比价粗啊, 两个activity...
  • android 监听 app 启动和退出

    千次阅读 2020-10-30 18:00:36
    最近有一个需求是需要在程序...话多说上代码,首先在 application 里面添加监听方法。 class BaseApplication : Application() { private val checkObserver = CheckObserver() override fun onCreate() { s
  • RN:使用react-native-exit-app退出app

    千次阅读 2021-12-21 17:05:41
    比如同意隐私协议的时候。 react-native-exit-app import RNExitApp from 'react-native-exit-app'; ... RNExitApp.exitApp(); ... 看了下源码,是这样退出的: android @ReactMethod public void exitApp() { ...
  • Android 点击按钮退出整个App

    千次阅读 2021-12-21 09:24:13
    Android 点击按钮退出整个App
  • Android 中几种优雅的退出APP方式介绍

    千次阅读 2018-07-10 09:28:26
    最近由于项目的修改,项目由MainActivity按返回键一次退出修改为MainActivity中连续按两次返回键退出,顺便优化一下推出这里的代码。因此还是在网上搜索了一番,总结比较之后得出了有以下集中方式,优缺点都会提出来...
  • uni-app 退出、登录按钮模板

    千次阅读 2021-02-05 14:06:40
    多说, 直接上代码 <view class="app-ment"> <text class="mix-btn" @click="logout">退出登录</text> </view> css样式: /* 按钮 */ .mix-btn { display: flex; align-items: ...
  • 关于app退出的问题,完美退出方式

    万次阅读 2017-06-20 09:43:43
    实际开发中会有很多关于app退出问题,我个人比较常见的有两种: 一、双击退出 比如说我们在首页的时候需要一个双击退出的方法,点击第一次手机的返回键时提示:“再点一次退出应用”。之类的话语,我们可以这样...
  • App 安全退出

    千次阅读 2018-06-07 09:49:32
    // TODO 还没开始呢,稍等片刻

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 261,731
精华内容 104,692
关键字:

怎么设置app不退出

友情链接: newton2.rar