小编mor*_*hio的帖子

Android:使用singleTop或SingleTask恢复活动

我已经在很长一段时间内一直在寻找关于我的问题的解决方案,但是Android文档并不是那么清晰,而且网络解决方案也不能完全运行.

我正在开发一个游戏,其中主要的Activity(游戏发生的地方)可以调用另一个简单的Activity而不是返回.它会像这样工作:

  1. 如果用户单击"主页"按钮然后返回游戏,则必须停止活动,然后在不通过onDestroy的情况下恢复活动(否则会丢失游戏状态)
  2. 当主Activity调用另一个Activity然后返回游戏时,功能相同.
  3. 当用户按下退出按钮时,游戏必须完全退出

对于前两点,我尝试了这一点,以确保创建并调用了一个且只有一个主Activity:android:launchMode="singleTask"或者android:launchMode="singleTop"不幸的是,第一个问题适用于第一个问题而第二个适用于第二个问题,而不是两个问题!

我认为问题是:使用singleTop时,当第二个活动调用它时,主Activity实际上并不在堆栈的顶部(要清楚,我不明白应该是什么情况,我称之为活动是已经在堆栈的顶部!).相反,singleTask确保Activity在其堆栈中是唯一的,但是在用户单击Home按钮并返回到Application之后,其他任务被调用,我是对的吗?

无论如何,这是一个聪明的解决方案还是我应该在onStop/onPause中保存我的游戏状态然后在onResume中恢复?

对于第三点,我尝试添加android:noHistory="true"到每个Activity,然后当用户单击退出按钮时,我调用一个新的Activity,除了finish()onCreate上的方法之外什么都不做,调用这个Activity intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);并且它的launchMode是singleInstance,但它没有'工作,它只是总是在主Activity中返回.

android android-intent android-activity

6
推荐指数
1
解决办法
6964
查看次数

C中多个文件中的静态二维数组

我使用了一个二维数组的字符,应该由C中的多个函数编写和读取.

这是我的阵列:

static char array[3][6];
Run Code Online (Sandbox Code Playgroud)

让我们说我有一个函数'Function()'来修改这个数组.如果函数在main中定义没有问题(数组被正确写入然后读取),但如果我想将我的函数放在另一个文件中,那么数组是正确写入的,但是当我在main中返回时是神奇地空了!这是我的代码.

main.c中

#include "support.h"

int main(int argc, char *argv[])
{
  Function();
  unsigned i, j;
  for(i = 0; i < 3; i++)
  {
    for(j = 0; j < 6; j++)
        printf("[%c]", array[i][j]); 
    printf("\n"); 
  }   
  system("PAUSE");  
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

support.h

static char array[3][6];
Run Code Online (Sandbox Code Playgroud)

support.c

void Function()
{
     char hello[6];
     hello[0] = 'H';
     hello[1] = 'E';
     hello[2] = 'L';
     hello[3] = 'L';
     hello[4] = 'O';
     hello[5] = '\0';
     strcpy(array[0], hello);            
}
Run Code Online (Sandbox Code Playgroud)

没有编译错误也没有运行时错误.再一次,如果我尝试移动main.c中的所有内容都可以工作,如果我分成两个文件则不然(数组一旦从Function()返回就会正确,然后它被释放),怎么样有可能吗?

c arrays static header

1
推荐指数
1
解决办法
1553
查看次数

标签 统计

android ×1

android-activity ×1

android-intent ×1

arrays ×1

c ×1

header ×1

static ×1