我有一个退出的方法,这是否越来越Android游戏活动:理解为什么在这种情况下
public void quitFinalize(ServicedActivity actCtx)
{
for (ServicedActivity act : mRunningActivities)
launchActivity(actCtx, new Intent(mAppCtx, act.getClass()).setAction("--"));
}
检查发现mRunningActivities是OK.It包括在我的任务创建并没有被破坏,所有的活动。所有活动继承:
public class ServicedActivity extends FragmentActivity implements OnClickListener
{
...
@Override
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
if (/*Intent.ACTION_SCREEN_OFF*/"--".equals(intent.getAction())) // used for quitting the game
{
finish();
}
}
...
}
我已经注意到了,在设置2个活动,该机构工作正常。然而,对于3个活动,Android 4.0.3决定它应该启动(创建)Set中的一个活动的另一个实例(它似乎特别喜欢启动一个特定的活动,而不是任何活动)。和他们完成他们所有的(因此4个破坏活动,而不是原来3)
我敢肯定它不是我创建活动无意中 - 我所有的launchActivity逻辑是通过追加FLAG_ACTIVITY_REORDER_TO_FRONT标志的意图的方法过滤,所以我不能最终得到同一个Activity类的两个实例。它必须是重新创建它的操作系统。
也试过没有“机器人:launchMode =‘singleTop’”清单文件属性 - 它是像这样的应用程序的所有活动。一样。
这是怎么回事?上面的onNewIntent()方法按预期命中3次,但在中间,Android创建一个新的Activity然后立即终止它。
感谢
可能相关:http://stackoverflow.com/questions/11703256/android-activity-intent-remains-after-shutdown – kellogs