在我的Android应用程序中,有一个欢迎屏幕。将USB电缆连接到计算机并进行测试时显示。 但是当我在手机中再次打开应用程序(一旦安装完毕)后,它就不会显示欢迎屏幕。它直接转到第二个Activity。请帮我解决一下这个。
这是第一个屏幕的代码。
public class MainActivity extends Activity {
Intent i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Timer().schedule(new TimerTask(){
public void run() {
startActivity(new Intent(MainActivity.this, MainMenu.class));
}
}, 2000 /*amount of time in milliseconds before execution*/ );
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
我希望每次打开应用程序时都显示欢迎屏幕。
非常感谢您的回复。实际上,当我在MainMenu.java类中注释此方法时,所有解决方案都有效。 (第二项活动)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("Do you want to exit from Cooparate LOLC App?");
// set dialog message
alertDialogBuilder
.setMessage("Are you sure !")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close current activity
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
return super.onKeyDown(keyCode, event);
}
但是我想在按下后退按钮时出现如上方法中的对话框。我怎样才能完成这两项任务。
答案 0 :(得分:0)
您可以通过以下方式执行此操作,
首先声明一个类
private class CountDown extends CountDownTimer
{
public CountDown(long millisInFuture, long countDownInterval) {super(millisInFuture, countDownInterval);}
@Override
public void onFinish()
{
startActivity(new Intent(MainActivity.this, MainMenu.class));
}
@Override
public void onTick(long arg0) {}
然后在onCreate()方法
上调用它private CountDown countDown;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countDown = new CountDown ( 2000,1000 );
countDown.start();
}
这肯定会每次都运行。
答案 1 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(MainActivity.this, MainMenu.class));
}
},2000);
答案 2 :(得分:0)
或者您可以尝试使用此
private Handler handler;
private Runnable runnable;
//在onCreate()中使用此
handler = new Handler();
runnable = new Runnable()
{
public void run()
{
startActivity(new Intent(MainActivity.this, MainMenu.class));
finish();
}
};
handler.postDelayed(runnable, 3000);
答案 3 :(得分:0)
public class MainActivity extends Activity {
private final int SPLASH_DISPLAY_LENGHT = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(MainActivity.this, HomeActivity.class);
startActivity(i);
finish();
}
}, SPLASH_DISPLAY_LENGHT);
}
}
并且不要忘记在清单中添加活动
<activity android:name="HomeActivity"></activity>
答案 4 :(得分:0)
Use handler instead of timer
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
startActivity(new Intent(MainActivity.this, MainMenu.class));
// close this activity
finish();
}
}, 2000);
的manifest.xml
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
在清单活动中使用此意图过滤器
答案 5 :(得分:0)
我的猜测是,您可能无法使用“后退”按钮正确关闭应用程序。 如果您通过按“主页”按钮关闭它,它将只会暂停和停止。正如您可以从diagram看到的,当您再次打开它时,onRestart() - &gt;调用onStart(),但不调用onCreate(),因此不会出现欢迎屏幕!