我的应用程序应该在广播接收器操作后打开。但是如果我的应用程序在当前打开,我需要删除以前的 MainActivity 并创建一个新的 MainActivity。如果 Activity 之前启动,如何从广播接收器启动 MainActivity 并删除以前的 MainActivity?
广播:
Intent initialIntent = context.getPackageManager().getLaunchIntentForPackage("com.cc.dd");
initialIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
initialIntent.putExtra(Constants.NUMBER,getIncomingNumber(mCallState));
context.startActivity(initialIntent);
我尝试使用标志,但我有奇怪的日志:
D/CallReceiver: main: [RINGING]
D/CallReceiver: main: [Incoming call true]
D/MainActivity: main: [ON_PAUSE]
D/MainActivity: main: [ON_CREATE]
D/MainActivity: main: [ON_START]
D/MainActivity: main: [ON_RESUME]
我看到 MainActivity 以前的版本转到 onPause,新版本开始。为什么以前的版本不删除?
最佳答案
如果你想结束一个 Activity 的生命周期,你需要调用 finish() 。以下代码将简单地重新启动当前 Activity :
Intent intent = getIntent();
finish();
startActivity(intent);
或
Intent intent = new Intent(YourActivity.this,YourActivity.class);
startActivity(intent);
finish();
引用资料:
关于android - 2 广播接收器后的主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37938498/