首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >令人费解的行为与REORDER_TO_FRONT

令人费解的行为与REORDER_TO_FRONT
EN

Stack Overflow用户
提问于 2018-05-08 08:34:12
回答 2查看 0关注 0票数 0

活动A启动没有标志的活动B. 堆栈现在是AB,B在上面。B使用FLAG_ACTIVITY_REORDER_TO_FRONT(唯一标志)开始活动A. 我期望堆栈现在成为BA。但是,此时按下后退按钮后,它将返回到主屏幕。在这里,我希望将活动B带到最前面。再次单击启动器图标时,应用程序将以B作为运行活动并在堆栈中打开任何内容。

Launchmode是清单中的标准(默认)。

这是预期的行为,我只是没有正确理解它?

我创建了一个没有混淆因素的测试项目,仍然看到相同的行为。我只是不理解它,它似乎不是每个文档。

这种行为似乎是在框架中的一个BUG,请参阅我的评论下面的答案。我需要一个解决方法。

代码语言:javascript
复制
public class MainActivity extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
public void onClickBtn(View view)
{
    Intent flowIntent = new Intent(this, SecondActivity.class);
    startActivity(flowIntent);
}



}


public class SecondActivity extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }


@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
public void onClickBtn(View view)
{
    Intent flowIntent = new Intent(this, MainActivity.class);
    flowIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(flowIntent);

}



}


Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android&quot;
    package="com.example.tester"
    android:versionCode="1"
    android:versionName="1.0" >
 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.tester.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity
            android:name="com.example.tester.SecondActivity" />
    </application>
</manifest>



    
EN

回答 2

Stack Overflow用户

发布于 2018-05-08 17:14:14

Stack Overflow用户

发布于 2018-05-08 17:54:33

当你REORDER到你的Activity(the Launcher Activity)时会发生什么,Intent被设置为使得后退将使你回到你的主页Launcher

作为一个实验,尝试添加ActivityC并尝试从REORDERB到C 的前面。即: A-> B-> C ... A-> C-> B

如果顺序对您非常重要,可能需要重写Activity.onNewIntent()方法。

代码语言:javascript
复制
@Override
protected void onNewIntent(Intent intent) {
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档