繁体   English   中英

从主屏幕返回后,当前活动(具有SingleTask launchMode)不会恢复(而是调用启动器活动的onNewIntent)

[英]Current Activity (with SingleTask launchMode) does not Resume after returning from Home Screen (Calls onNewIntent for launcher Activity instead)

我有两个活动,一个是Splash活动(单击启动器图标时启动),另一个是Map活动(稍后在用户登录后通过意图启动)。

有时,当“地图活动”打开时,我会转到主屏幕,然后尝试在几秒钟后停止的地方恢复该应用程序。 我注意到,当我单击主屏幕上的启动器图标以恢复当前活动(“地图活动”)时,我被重定向到“飞溅”活动。 这违反了Android文档中列出的行为。

根据文档:“当用户通过按“主页”按钮离开任务时,当前活动将停止并且其任务进入后台。系统将保留任务中每个活动的状态。如果用户稍后恢复任务,通过选择启动任务的启动器图标,任务将进入前台,并在堆栈顶部恢复活动。

当地图活动运行时,我的后堆栈是:

---MapActivity (front-facing activity)
---SplashActivity

当我单击主页时,我看到在MapActivity中调用了onStop()(如预期的那样),但是当我单击启动器活动时,MapActivity被破坏了,在SplashActivity中调用了onNewIntent。 有谁知道是什么导致了这种现象?

我的Android清单是:

 <activity
    android:name=".SplashActivity"
    android:exported="true"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <action android:name="com.deca.mw.SplashActivity" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
<activity
    android:name=".activity.MapActivity"
    android:hardwareAccelerated="true"
    android:launchMode="singleTask" >
    <intent-filter>
        <action android:name="android.intent.action.SEARCH" />
    </intent-filter>
</activity>

启动MapActivity的意图是:

   Intent intent = new Intent(appContext, MapActivity.class);
   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   appContext.startActivity(intent);

这是Android清单中的android:launchMode="singleTask"设置。 尝试将其删除,看看是否可以解决您所描述的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM