请教大家有没有遇到过这样的问题:我用程序A下载了程序B,然后调用系统安装了程序B,当然点击打开程序B后,程序A就被杀掉了

解决方案 »

  1.   

    应该是内存不足自动杀掉吧
    没有log没有办法分析的
      

  2.   

    问题解决了。想不到这么简单。我把备份的关键代码贴出来啦:
    private void backupApp(String packageName) throws IOException { File in = new File("/data/app/" + packageName + ".apk");
    File out = new File("/sdcard/BackupApp/" + packageName + ".apk");
    out.createNewFile();
    FileInputStream fis = new FileInputStream(in);
    FileOutputStream fos = new FileOutputStream(out); int count;
    while ((count = fis.read(buffer)) > 0) {
    fos.write(buffer, 0, count);
    } fis.close();
    fos.flush();
    fos.close();
    }至于获取已安装程序的包名就不再累述了。
      

  3.   

    上面的代码忘记定义buffer了,我定义的是256K的buffer: byte[] buffer = new byte[256 * 1024];
      

  4.   

    不需要任何额外的设置很权限。只要先获取所有程序的包名,然后依次传入上面的函数即可。
    当然,因为我把程序备份到sdcard上,所以需要申请内存卡的读写权限。