我们项目中有一个dvd的应用, application列表中点击dvd,进入dvd主界面,
然后会根据碟片类型跳转到不同的Activity.  当我按下Home键, 再从application列表中点击dvd,
会进入按Home之前的播放界面. 这个木有问题.我写了一个Widget, Widget上有一个按钮也可以进入DVD应用的主界面, 我设置了Intent的flag为FLAG_ACTIVITY_BROUGHT_TO_FRONT, 当一开始从Widget进入,按Home,再从Widget进入,同样会进入到
按Home之前的播放界面.此时的问题来了,  我们一个同事鬼使神差的进行了这样的操作:
1: 从Widget点击,初次进入DVD主界面,待DVD读碟完毕后进行播放, 此时按下Home,回到桌面,
然后从application列表中的dvd进入dvd, 发现不会进入到最后一次的播放页面, 只会进入到读碟的那个界面去了
2: 同样的,从application列表中的dvd进入dvd, 按Home, 再从Widget进入, 也是到读碟的页面去了。请问有没有大侠碰到过此类问题?这个怎么解决阿? 这样release出去,测试的如果也来次这样的操作肯定要报bug的。
只能100分,  分不够可以再开贴给分。
很急啊。。  麻烦了

解决方案 »

  1.   

    调试看看,从不同的地方重新进入,Activity是否重新onCreate()了
      

  2.   

    没有遇到过这样的,因为我没写过Widget,我猜是因为生命周期的问题而引起的, 按Home键:OnPause,OnStop这两个被调用了,至于Widget的生命周期我就不太清楚,有可能是生命周期期间的保存的配置不一样
      

  3.   

    查查从不同的地方发出的intent是不是一样的。
      

  4.   

    今天早上一来就翻Launcher源码,把Widget的点击事件的Intent的flag完全与applicationInfo里面一样,  再启, 发现问题还是存在.找到了问题的原因所在, 但是不知道怎么解决!
    问题是ActivityManager的Log显示, 虽然两次Intent完全相同,但是不在一个进程里面了.
    由于已经是两个进程了, 所以是肯定不会显示成一样的.大家有没有什么方法从两个入口进的时候不再新开一个进程呢? 
    我想如果是在一个APK里面应该不会有问题, 因为DVD那边是直接给的个APK, 不能在源码里面修改,
    于是只能自己做个apk写一个Widget.