精华内容
下载资源
问答
  • Android定时自动启动应用程序~~~~~~~
  • 为了实现自己应用能够实现自动启动,最初的思路是监控设备的开机完成这类的广播信号;   思路一(开机自启动): 注册一个静态广播去监听开机启动完毕的广播,然后在接听到开机广播完毕后启动|Activity或者...

    最近遇到这么个问题:

    在一个移动设备中安装了多个应用程序,其中自己开发的应用需要实现开机自启动这么个功能;

    为了实现自己应用能够实现自动启动,最初的思路是监控设备的开机完成这类的广播信号;

     

    思路一(开机自启动):

    注册一个静态广播去监听开机启动完毕的广播,然后在接听到开机广播完毕后启动|Activity或者Service;

    其中广播监听器中内容为:

    public class BootCompletedReceiver extends BroadcastReceiver {
    
        private static final String ACTION_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED";
     
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(ACTION_BOOT_COMPLETED)){
                Intent intent=new Intent(context,MainActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
            }
        }
    }

    必须强调下如果没有设置标记 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

    如果不添加这句,就会报 android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity,Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

    然后在AndroidManifest.xml静态注册该广播:

    <receiver android:name=".BootCompletedReceiver">
            <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.HOME" />
            </intent-filter>
    </receiver>

    然后在AndroidManifest.xml申请权限:

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    通过以上的方法,可以实现开启启动APP,但是,这个方法有问题,以上的方法必须要在安装APP后,手动运行一次APP后,APP才能接收到android.intent.action.BOOT_COMPLETED广播。

     

    然而以上的解决思路在Android 3.1之后有了变更;

    APP接收不到BOOT_COMPLETED广播可能的原因,有以下几种:

    1. BOOT_COMPLETED对应的actionuses-permission没有一起添加
    2. 应用安装到了sd卡内,安装在sd卡内的应用是收不到BOOT_COMPLETED广播的
    3. 系统开启了Fast Boot模式,这种模式下系统启动并不会发送BOOT_COMPLETED广播
    4. 应用程序安装后重来没有启动过,这种情况下应用程序接收不到任何广播,包括BOOT_COMPLETEDACTION_PACKAGE_ADDEDCONNECTIVITY_ACTION等等。

    Android3.1之后,系统为了加强了安全性控制,应用程序安装后或是(设置)应用管理中被强制关闭后处于stopped状态,在这种状态下接收不到任何广播,除非广播带有FLAG_INCLUDE_STOPPED_PACKAGES标志,而默认所有系统广播都是FLAG_EXCLUDE_STOPPED_PACKAGES的,所以就没法通过系统广播自启动了。
    所以Android3.1之后:

    1. 应用程序无法在安装后自己启动
    2. 没有ui的程序必须通过其他应用激活才能启动,如它的Activity、Service、Content Provider被其他应用调用。

    不过,存在一种例外,就是应用程序被adb push you.apk /system/app/下是会自动启动的,不处于stopped状态。解决方式就是将APK推送到/system/app目录下,或者打包系统时,将APK放置到/system/app中打包

     

    结论是: 我没法将自己的应用安装到系统路径下,无root权限,即无法通过监控开机完成这个广播信号实现自启动了;那么采用思路二;

     

    思路二(其他应用通知启动):

    通过其他应用(命名为应用A)发送特定广播信号,我只需监控应用A发送的广播信号即可实现自启动了;

    实现:A应用中的Activity发送广播,关键代码如下:

           

    String broadcastIntent = "com.example.BootUp";//自己自定义
           Intent intent = new Intent(broadcastIntent);
           this.sendBroadcast(intent);

    B应用中需要一个BroadcastReceiver来接收广播,取名MyReceiver继承BroadcastReceiver重写onReceive方法启动一个activity,关键代码如下:   

    if(intent.getAction().equals("com.example.BootUp")){
            Intent intent = new Intent(context,MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
    }

    在AndroidManifest.xml中要对MyReceiver进行注册,代码如下:

         <receiver android:name="MyReceiver">
                 <intent-filter>
                      <action android:name="com.example.BootUp"/>
                </intent-filter>
        </receiver>

    这样就完成了通过应用A发送的广播启动另一个应用B中的Activity了(上面代码中Activity默认命名为MainActivity)。

    注意问题:Context中有一 个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用 Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新 的task,解决办法是,加一个flag,也就是这句 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);的作用。

     

     

    开机自启动问题参考:https://segmentfault.com/q/1010000015837899

    广播receiver中启动Activity参考:https://blog.csdn.net/u014005316/article/details/53671673

                                                         https://www.cnblogs.com/zhujiabin/p/4262049.html

     

    展开全文
  • 阿里云轻量应用服务器Node自动启动和MongoDB自动启动前言MongoDB自动启动Node自动启动MongoDB远程连接 前言 十一休息的时候趁着给女朋友做库存系统的机会,研究了一下阿里云的轻量服务器,因为我本事是做前端开发...

    阿里云轻量应用服务器Node自动启动和MongoDB自动启动

    前言

    十一休息的时候趁着给女朋友做库存系统的机会,研究了一下阿里云的轻量服务器,因为我本事是做前端开发,所以就考虑了服务端用的Node.js,数据库用的MongoDB。
    从购买服务器到部署项目的过程就不讲了,网上有很多例子。我主要说下我在做自启动和MongoDB远程访问时遇到的问题。

    MongoDB自动启动

    由于我的是Node项目,所以要先启动数据库,然后服务才能连接运行。

    注:我用了X-shell进行远程连接,X-ftp进行文件上传,版本都是6

    1. 连接服务器后输入:vim /etc/rc.local 打开启动后运行的配置文件
    2. 输入i 进行文件编辑,在底部添加代码:/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/log/mongodb.log --logappend (因为是自己用,我没有加auth验证)。如下图:

    MongoDB自启动

    注:如果底部还有其他自启动命令,需要在上面一行的尾部加上&

    1. esc退出编辑,:wq保存并退出。
    2. 输入chmod +x /etc/rc.d/rc.local,然后重新启动服务器。
    3. 重新连接服务器,输入netstat -an| grep 27017查看MongoDB是否自启动。
      在这里插入图片描述

    想远程连接数据库时,MongoDB默认内网连接IP是 0.0.0.0 ,不用再设置

    MongoDB远程连接

    想要远程连接需要把对应端口的防火墙打开,我在服务器上打开了27017,但是远程连接不上,然后在阿里云的控制台把27017的防火墙添加了进去就可以了:
    MongoDB远程连接防火墙设置

    Node自动启动

    Node自动启动,我用的是pm2来进行管理。

    1. npm install -g pm2 全局安装pm2
    2. pm2 start /root/zhu/app.js 后台运行服务(以npm运行:pm2 start npm – run dev)
    3. pm2 list 显示所有进程状态
      显示所有进程状态
    4. pm2 stop 0 停止指定的进程
      然后可以重启服务器试试服务有没有自动启动。
    展开全文
  • 1、无法调用服务端的service,不能唤起服务端进程,是因为服务端应用的“关联启动”权限没手动打开。2、貌似“关联启动”这个权限功能是6.0...当这个应用其他应用关联启动一次以后(启动失败了),此时你再打开权限

    1、无法调用服务端的service,不能唤起服务端进程,是因为服务端应用的“关联启动”权限没手动打开。

    2、貌似“关联启动”这个权限功能是6.0以后部分品牌手机有的。

    3、调用activity不需要“关联启动”权限,service需要,其他两个没试。

    4、新装一个应用时,你打开它的权限是没有“关联启动“这一项的,应该是默认不可以关联启动。当这个应用被其他应用关联启动一次以后(启动失败了),此时你再打开权限管理,就有关联启动了。
    “应用自动启动”应该也是这个道理。

    5、以下是从别的地方摘抄的一段话,关于“应用自动启动”和“关联启动”:
    安卓每个程序(软件)都可以设置监听广播,广播的来源有两大类:一类是常见的的系统广播如:开机广播、解锁屏广播、电量变化广播、网络状态广播等等,格式举例:(开机广播),手机上所有的安卓程序(软件)开发时都可以设置监听这些广播,当然监听有些系统广播需要在程序里声明权限。接收系统广播唤醒软件,一般称之为软件自启动。另一类是软件(程序)自定义的广播,这些广播可以在程序运行的任何过程发出,比如:该程序启动时发出,联网时发出,等等。所有知道该广播的软件(程序)都可以接受。接收广播主要用于唤醒软件(软件关联启动)。一般来说,软件(程序)自定义的广播属于商业机密,比如说阿里给支付宝定义了广播A,给淘宝定义了广播B,同一家的软件支付宝就能通过淘宝发出的广播B启动,淘宝亦然。微信和QQ的也是这样。假如有一天,用户只装了支付宝和微信,那么支付宝和微信如何关联启动?阿里对腾讯说,我把支付宝发出的广播告诉你,你把微信发出的广播告诉我。腾讯说,好。于是你会发现支付宝唤醒了微信,微信唤醒了支付宝。

    展开全文
  • java应用程序开机自动启动

    热门讨论 2011-10-27 22:43:01
    java应用程序开机自动启动 java应用程序开机自动启动 java应用程序开机自动启动
  • 如图所示 ![图片说明](https://img-ask.csdn.net/upload/201801/29/1517193805_901813.png) 这个自启动怎么用代码设置成默认开启啊
  • 在我们做petalinux 作为嵌入式系统时,希望系统启动时能执行我们指定的应用程序。本文根据ug1144 说明如何做这个。 首先找到 ug1144 的7章Customizing the Rootfs,然后是其下的Application Auto Run at Startup,...

    在我们做petalinux 作为嵌入式系统时,希望系统启动时能执行我们指定的应用程序。本文根据ug1144 说明如何做这个。

    首先找到 ug1144 的7章 Customizing the Rootfs,然后是其下的 Application Auto Run at Startup,以下步骤就来自这里。

    1:首先你应该安装好了你的应用程序,可以看我另一博文。

    2:转到你的工程文件夹, 然后执行petalinux-create如下:

    cd <plnx-proj-proot>/
    petalinux-create -t apps --template install -n myapp-init --enable

    3:编辑文件 project-spec/meta-user/recipes-apps/myapp-init/myapp-init.bb

    我的文件名是udpc-init.bb, 应用程序名是udp, 你需要根据你的名字做相应修改。

    内容如下:

    #
    # This file is the udpc-init recipe.
    #

    SUMMARY = "Simple udpc-init application"
    SECTION = "PETALINUX/apps"
    LICENSE = "MIT"
    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

    SRC_URI = "file://udpc-init \
        "

    S = "${WORKDIR}"
    FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
    inherit update-rc.d
    INITSCRIPT_NAME = "udpc-init"
    INITSCRIPT_PARAMS = "start 99 S ."

    do_install() {
        install -d ${D}${sysconfdir}/init.d
        install -m 0755 ${S}/udpc-init ${D}${sysconfdir}/init.d/udpc-init
    }
    FILES_${PN} += "${sysconfdir}/*"

    4:运行myapp作为 daemon 程序

    脚本程序,转到files 下,编辑这个文件project-spec/meta-user/recipes-apps/myapp-init/files/myapp-init
    如下(我的文件名是udpc-init):

    #!/bin/sh
    DAEMON=/usr/bin/udpc

    start ()
    {
    echo " Starting udpc"
    start-stop-daemon -S -o --background -x $DAEMON
    }
    stop ()
    {
    echo " Stoping udpc"
    start-stop-daemon -K -x $DAEMON
    }
    restart()
    {
    stop
    start
    }
    [ -e $DAEMON ] || exit 1
    case "$1" in
    start)
    start; ;;
    stop)
     

    5:编辑好这2个文件后,运行petalinux-build, 然后打包,下载,就可以验证了。我的验证是成功的。

    启动后,用ps可以看到我的程序在运行,同时我的上位机通讯正常。不同的是原来的printf 都不显示出来了。 可能与选项 --background 有关。

    6:开机每次都自动启动执行了。可是问题来了,我想关闭这个程序,我想要有显示,我还要调试。

    我查找到 start-stop-daemon -K -n udpc 这个指令可以关闭自启动的daemon 。

    这个指令介绍见 http://linux-commands-examples.com/start-stop-daemon

    介绍结束,希望对你有用。

     

    展开全文
  • 由于很多应用程序并不具有开机自启的功能,所以可以通过注册表编辑器来实现某个应用程序的开机自启 1、利用win+R组合键打开运行界面,在编辑框中输入“regedit",然后点击确定或按一下回车键,接着就会弹出...
  • CentOS 配置java应用开机自动启动

    千次阅读 2019-11-13 10:10:05
    简述: 这里讲述配置CentOS开机启动的3中方式,分别是:...该方式将java应用启动脚本托管给systemctl服务,通过systemctl的一系列命令配置应用的开机启动。 1)进入到系统的/usr/lib/systemd/system目录下 cd ...
  • 在UBUNTU环境有多种应用,但很多UBUNTU环境应用介绍的书却未涉及UBUNTU添加程序开机自动启动的方法,这篇总结不错,有需要的下载。
  • 通过更改计算机注册表,可以使应用程序在开机或重启后自动启动。 使用运行命令(Windows+R键),输入regedit,点击确定,打开注册表编辑器。 打开路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\...
  • 用 nohup java -jar 启动java进程,过一段时间进程就挂掉了,而我去服务器看,需要通过secureCRT,发现CRT的session总是断掉了,因此我推断可能是nohup,启动方式不对。于是在网上查找问题,可能是因为session挂了会...
  • (1)应用程序条件: 应用程序名称:zynq-tof-path-analysis 应用程序路径:/home/tof-240-320 启动脚本名称:start_zynq_app (2)chkconfig命令介绍: --add:增加所指定的系统服务,让chkconfig指令得以...
  • win10自动修复电脑无法正常启动

    千次阅读 2020-03-03 12:55:32
    昨天遇到的这个问题,起因是电脑卡,反复重启后还是觉得卡,于是强制关机,结果出现蓝屏,自动修复,电脑无法正常启动。参考了网上的相关解决方法,尝试在高级选项里面选择“禁用驱动程序强制签名”,仍然是自动修复...
  • WAS启动控制台,但不自动启动应用
  • ** Office启动自动更新,并出现应用无法正常启动(0x0000142的解决办法** 1.启动Office发现如下: 2.觉得大事不妙,估计要出问题,就顺手截了个图,截完图结果真出了问题: 3.上网找解决办法,办法如下: 4.不管...
  • Android 应用程序异常退出自动重启

    热门讨论 2014-09-15 10:52:25
    Android 应用崩溃自动启动 给用户给好的体验 本应用还可以扩展为类似京东崩溃时弹出信息反馈框 这需要你自己实现哦 另外欢迎关注我的新浪微博@MinganCai 有问题可以@我 我会尽快给你们回复的 雷锋
  • app.getPath('exe'), //当前应用路径,也是自动启动应用路径 'REG_SZ', // 固定的 ) .then(()=>{ cbSus && cbSus() }) .catch(()=>{ cbErr && cbErr() }) } module.exports = setAppStart 可以...
  • 在探索过程中,尝试了多种方法,比如:...最终网友们提到Session 0隔离机制,在Windows2003之后的系统版本,比如Windows Vista、Windows 2008 server、Windows7系统等,注册的服务不能调用应用程序的窗口,并将其...
  • 系统每次打漏洞补丁都会进行服务器重启,系统重要性比较低,没有自动化自愈工具,只有纯docker的工具,因此只能通过编写脚本进行自启动docker以及docker内的应用 解决方法 通过shell脚本的方式,可以把脚本加到rc....
  • (1)应用程序条件: 应用程序名称:zynq-tof-path-analysis 应用程序路径:/home/tof-240-320 启动脚本名称:start_zynq_app (2)chkconfig命令介绍: --add:增加所指定的系统服务,让chkconfig指令得以管理它,...
  • Android 开机自启动应用

    千次下载 热门讨论 2012-11-29 20:37:48
    Android 开机自启动应用, BOOT_COMPLETED
  • 使用 commit 创建 docker 镜像时,因为 docker 容器启动机制与原来的 linux 系统不一样,所以原来的自启动的应用在启动容器之后都不会自动启动。如docker容器里的mysql服务不启动。 解决方法 创建镜像时,在容器...
  • 为了android 在启动后linux内核自动启动某个应用或者脚本,可以修改下面的文件 device/qcom/msm8974/init.target.rc, 然后重新编译android系统, 下载boot.img 例如要在android启动后自动运行 powerOnOff linux程序...
  • WAS启动server时,不默认启动应用

    千次阅读 2018-12-05 16:42:12
    有时候调整WAS参数,或者因为应用的一些问题,导致was启动不了,进不了控制台,这样就没有办法做控制台的任何操作了,这个时候需要把默认启动应用的地方设置成false 例如: /was7/IBM/WebSphere/AppServer/...
  • @ [linux] 使用普通用户开机自动启动应用 #开机使用普通用户启动应用方法,在/etc/rc.d/rc.local 文件中加入如下的行: su app -c “/bin/bash /opt/svr/xxx/start.sh” 或者: su app -c “cd /opt/svr/xxx/ ;/bin/...
  • 什么要深挖自动启动项? 自动启动功能在给用户带来便捷的同时,也给病毒提供了便利的启动途径。所以无论是出于方便自己使用,还是防范病毒感染电脑,我们都有必要深挖一下windows中所有的启动项。  一 、两个...
  • 超出有效应用范围,遥控启动不会起作用。 面对用户需求的变化,智能互联系统变化,例如手机远程启动功能的加入,已经出现在了很多10万元以下的车型身上,这些看似高科技的智能钥匙给你带来便利的同时。有没有考虑过没...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,071,168
精华内容 428,467
关键字:

其他应用自动启动是什么意思