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();
}