2301_78813915 2023-06-20 13:13 采纳率: 0%
浏览 13
已结题

如何用替代法,替代更新包里面App

具体流程该怎么操作,还有就是更改更新包型号。原先直接用ROM助理添加两个app,车机就无限重启,各位吧友有什么办法没有?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-20 16:11
    关注
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7476115
    • 这篇博客也不错, 你可以看下App 抓包提示网络异常怎么破?
    • 除此之外, 这篇博客: 怎样防止App在后台运行,点击应用桌面图标重新启动?中的 怎样防止App在后台运行,点击App桌面的图标重新启动? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    •            在项目中,遇到一个问题百思不得其解,那就是:我在app使用过程中,点击了home键,然后去看看微信之类的其他应用,这个时候再点击app桌面的图标,这个时候app是重新启动的,而不是从上次停止的界面开始的。

                 对于上面的情况,我觉得既然我的app已经在后台还运行着,为什么就不能继续重上一个界面继续运行,非得从新运行呢。然后我就去查资料解决了这个问题。首先讲讲这个现象的本质。

                 原因:当点击app桌面图标时,app默认是任务你要新建一个应用,而不会去判断你后台有没有再运行的相同应用。

              经过实践我发现:当你点击应用桌面图标,应用会重新创建你的app的启动页,然而,你快速的点击返回按钮,你会发现你会回到上一次退出时的界面。经过查阅资料发现,系统会记录你启动acitivity的启动顺序的栈。并且把当前的启动页放到了最上方,如下图所示:        

          注意:资料上面说以前启动的activity都是不在了,只是系统记录了他们启动的顺序,然而你按返回键,系统就会自动的重新创建新的activity,加入当app依次启动了1到11的activity,然而,在11这个activity的时候,你点击了home键、或点击了其他软件如微信qq等,这个时候你的app进入后台,1到11的这些activity其实被系统回收了,但是系统记录了这个activity启动顺序的栈,然后当你回到这个应用时,实际上系统是重新创建了Activity11,然后点击返回键,右重新创建了Activity10,就是这样倒序 创建activity的原理。

                然而,当你把App放入后台时,这个时候点击了app桌面的启动图标,这个时候系统会默认你开启一个新的应用,但是因为一个软件只能在手机上面运行一个,所以,系统发现你之前的app还在后台,这个时候系统会把新创建的activity放到了之前activity栈的顶部,如上图所示的Activity1

              知道了原因之后,我们就好做处理了。

              第一步:查看Activity1的启动模式,如果Activity1的启动模式为singleTask

      android:launchMode="singleTask"

                 那么必须把他删除掉,或者改为“standard"。

               第二步:在你的app的AndroidManifest.xml文件的application标签下面设置
      android:persistent="true"
               持久化为 true;防止你的app挂后台被回收。

               第三步:在activity1的onCreate方法中设置如下方法:
      @Override  
      protected void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
          if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {  
             
              finish();  
              return;  
          }  
          setContentView(R.layout.activity1_layout);
          // Regular activity creation code...  
      }  
      
                其实就是在setContentView()之前设置如下代码:
       if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
                  finish();
                  return;
              }
                  用于判断这个Activity的启动标志,看它所在的应用是不是从后台跑到前台的。如果是,则直接把它finish()掉,然后系统会去Activity启动历史栈查询上一个activity,然后再新建它,所以还原到了我们按home键出去的那个界面。
                        
                    好了,就这样解决了App在后台运行,点击应用图标它会重新启动的问题。希望对你有所帮助!



    • 您还可以看一下 CSDN就业班老师的网站与APP中的版式设计、色彩搭配和创意思维课程中的 色彩搭配实例小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月28日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 oracle数据库查询语句问题
  • ¥15 有没有c++绘制算法的佬们吗救孩一下
  • ¥15 android 蓝牙闪退
  • ¥15 绝缘子污秽comsol仿真参数
  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码