@Override
public void onStop() {
Intent intent = new Intent(this, StatusActivity.class);
startActivity(intent.setAction(AppConstants.ACTION_DISPLAY).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK));
super.onStop();
}
这不起作用为什么?
StatusActivity在onCreate或onNewIntent中没有收到意图
如果我把代码放在其他任何地方,那么它可以工作但不在onStop或onPause
似乎意图正确发送但StatusActivity没有立即收到它。只有当我从另一个地方发送另一个意图然后同时接收它们时,它才会收到它
为了测试我在开始时发送了10个意图,然后在几秒后我从服务发送了另一个意图,并且StatusActivity一次收到了11个意图。
<activity
android:name=".MainActivity"
android:excludeFromRecents="false"
android:label="@string/app_name"
android:launchMode="singleTask"
android:taskAffinity=".MainActivity"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".StatusActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:excludeFromRecents="true"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:taskAffinity=".StatusActivity" >
答案 0 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
Intent intent = new Intent(this, StatusActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
答案 1 :(得分:0)
我测试了你的代码并发现当我按下后退按钮时,将调用活动B,但是当我按下主页按钮时,它没有。
我想原因是当按下主页时,系统调用启动器apk按组件或动作(我不确定),但是按下后没有。而你的活动B被发射器隐藏了。
我不认为onStop方法中的呼叫活动B是一种合适的方式,因为你无法控制调用时间。但我找到另一种方法来实现这一点:
protected void onStop() {
finish();
super.onStop();
}
public void finish() {
startActivity(your intent);
super.finish();
}
这只是一种解决方法,而不是一个好的解决方案。
希望它有所帮助。