我尝试将Splash Activity添加到我的应用程序中 当程序第一次启动时,此启动活动会打开
但是当应用程序工作并跳过主要活动的启动活动时 并且用户按住并转到主屏幕
之后用户将返回应用程序,
问题出在这里 所以应用程序再次重新打开启动活动
我不希望每次应用程序恢复活动时应用程序都会打开启动活动 我需要直接打开主要活动...
我尝试了这段代码,但它不适用于我
在Splash Activity中......
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Class<?> activityClass;
try
{
SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
activityClass = Class.forName(prefs.getString("lastActivity", MainActivity.class.getName()));
}
catch(ClassNotFoundException ex)
{
activityClass = MainActivity.class;
}
startActivity(new Intent(this, activityClass));
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
}
);
}
}
在主要活动中我使用此代码
public class Main2Activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("lastActivity", getClass().getName());
editor.commit();
}
}
我希望帮助我
提前致谢
问候......:)
答案 0 :(得分:2)
使用Application类保存全局标志:
public class App extends Application {
private static boolean sFirstRun = false;
public static boolean fetchFirstRun() {
boolean old = sFirstRun;
sFirstRun = false;
return old;
}
//--called when app process is created--
@Override
public void onCreate() {
super.onCreate();
sFirstRun = true;
}
}
在manifest.xml中添加:<application android:name=".App"
现在,App.fetchFirstRun()
仅在从头开始创建App进程时才为真。只要app正在运行,后续调用将返回false。