如何在android中从主屏幕按回按钮时再次启动闪屏启动

时间:2018-01-30 06:47:03

标签: android

从主屏幕按回按钮然后应用程序进入后台,当从后台提升应用程序时,应用程序从启动画面开始。但我想从主屏幕启动应用程序。

public class SplashActivity extends AppCompatActivity {

    private  static  final long SPLASH_DURATION = 3000L;
    private Handler mHandler;
    private Runnable mRunnable;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        mHandler =  new Handler();
        mRunnable = new Runnable() {
            @Override
            public void run() {
                dismissSplash();
            }
        };

        View rootView = findViewById(android.R.id.content);
        rootView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dismissSplash();
            }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
        mHandler.postDelayed(mRunnable, SPLASH_DURATION);
    }

    @Override
    protected void onPause() {
        super.onPause();
        mHandler.removeCallbacks(mRunnable);
    }

    private void dismissSplash(){
        startActivity(new Intent(this, MainActivity.class));
        finish();
    }
}

3 个答案:

答案 0 :(得分:0)

在致电家庭活动之前,只需致电finish()方法。

            finish();
            startActivity(new Intent(getApplicationContext(), yourActivity.class));

如果不起作用,请在家庭活动中处理onBackPressed

@Override
public void onBackPressed() {
    moveTaskToBack(true); //it goes to background.
}

答案 1 :(得分:0)

请使用{{1}}代替{{1}},因为您正在从另一个主题调用dismissSplash。

{{1}}

答案 2 :(得分:0)

请从启动活动

时添加以下给出的标志
Intent intent = new Intent(context, activity);     
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);   
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);     
context.startActivity(intent);

如果您找到匹配请尝试此操作,请批准答案。