我有一个带闪屏的应用程序。它显示我第一次跑,但它再也没有显示。无论如何我每次启动时都会重置应用程序吗?
答案 0 :(得分:1)
您的问题是,当您的活动进入后台时,您的活动不会被销毁。相反,您的应用程序只是继续在您离开它的地方。想象一下,您在两个活动之间进行切换,在这些情况下,您可能不希望再次显示启动画面。默认情况下,它会继续您的应用程序,直到它在后台终止,例如当记忆力降低时。
但是,如果您真的想要这种行为(我不建议),请在onPause()
中调用方法finish()
。当您的活动进入后台时,这将终止您当前的实例。
如果您只想在应用启动器图标上显示启动画面,请单击清单中的android:launchMode="singleInstance"
选项,Lal在答案中也指出了这一点。要使用启动器图标检测应用程序是否已启动,您可以检查意图。
在第一次开始时,系统会调用onCreate()
,在第二次启动时(通过启动器)onNewIntent(Intent intent)
将会在那里调用Intent.CATEGORY_LAUNCHER.equal(intent.getAction())
,如果您的应用已打开,则可以#include<cs50.h>
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main(int argc, string argv[])
{
string a = argv[1];
int s = strlen(a);
if(s == 0)
{
printf("No keyword entered\n");
return 1;
}
for(int k = 0; k < s; k++)
{
if(!isalpha(a[k]))
{
printf("keyword not alphabetical\n");
return 1;
}
}
string t = GetString();
int i = 0;
int x = 0;
int v = 65;
for(int n = strlen(t); i < n; i ++)
{
if(isalpha(t[i]))
{
if(isupper(t[i]))
{
if(isupper(t[i]))
{
if(islower(a[x]))
{
v = v + 32;
}
int p = a[x];
p = p -v;
int 1 =t[i];
1 = 1 - 65;
int b = (1+ p[s%x]%26;
b = b + 65;
char c = b;
printf("%c", c);
x = x+1;
}
if(islower(t[i]))
{
int p = a[x];
p = p - v;
int 1 = t[i];
1 = 1-97;
int b =(1 +p[s%x]%26;
b = b + 97;
char c = b;
printf("%c", c);
x = x + 1;
}
}
else
{
printf)"%c", t[i]);
}
}
printf('\n');
}
查看发射器与否。
答案 1 :(得分:0)
将splashscreen Activity设置为应用程序的第一个活动,如下所示
在AndroidManifest.xml
中将此添加到SplashScreen活动
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<强>更新强>
在android:launchMode="singleInstance"
文件中添加AndroidManifest.xml
只要您打开一次的活动。