Android onStop中的startActivity不起作用
这不起作用为什么?Android onStop中的startActivity不起作用,android,android-activity,Android,Android Activity,这不起作用为什么? StatusActivity未收到onCreate或OnneWinEvent中的意图 如果我把代码放在其他任何地方,那么它可以工作,但不能在onStop或onPause中工作 似乎意向已正确发送,但StatusActivity未立即接收。只有当我从另一个地方发送另一个意图,然后同时接收它们时,它才会收到它。 为了进行测试,我在启动时发送了10个意图,几秒钟后,我从服务发送了另一个意图,StatusActivity同时收到11个意图 @Override public voi
StatusActivity未收到onCreate或OnneWinEvent中的意图
如果我把代码放在其他任何地方,那么它可以工作,但不能在onStop或onPause中工作
似乎意向已正确发送,但StatusActivity未立即接收。只有当我从另一个地方发送另一个意图,然后同时接收它们时,它才会收到它。
为了进行测试,我在启动时发送了10个意图,几秒钟后,我从服务发送了另一个意图,StatusActivity同时收到11个意图
@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();
}
试试这种方法,希望这能帮助您解决问题。
<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" >
我已经测试了您的代码,发现当我按下后退按钮时,活动B将被调用,但当我按下home按钮时,它不会被调用 我猜原因是当按下home键时,系统会按组件或操作调用launcher apk(我不确定),但按下back键则不会。你们的活动B被启动器隐藏了 我不认为在onStop方法中调用活动B是合适的方法,因为您无法控制调用时间。但我找到了另一种方法来实现:
Intent intent = new Intent(this, StatusActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这只是一个变通办法,不是一个好的解决方案
希望能有所帮助。首先,您无法确定每次调用onStop()的时间,因为某些设备内存问题onStop()将不会被调用,但onPaush()将被最终调用。您希望实现什么?我希望在活动A关闭后(在onStop之后)显示活动B。我不在乎它是否一直不起作用,你如何使你的活动A
在顶部
?在返回时,有时在完成时。我的问题是,当我按下返回按钮时,活动B没有被调用,并且希望它被调用。我不想在按下home键时调用活动B(这也是违反谷歌政策的)@Chris,尝试在onBackPressed
或onUserLeaveHint
中启动活动,它能工作吗?在onBackPressed中它能工作,在onStop中它不能。问题是我需要在当前活动停止后启动该活动。我最终向该服务发送了一个广播,在那里我使用了startActivity。令人惊讶的是,它在onStop中不起作用。我在想也许是因为我们的关系
protected void onStop() {
finish();
super.onStop();
}
public void finish() {
startActivity(your intent);
super.finish();
}