如何完成A,B,C,D,E的特定活动?

时间:2014-03-12 08:44:44

标签: android

我有以上活动。流程为A - B,B-C,C-D,D-E。 如果在活动E上,如果用户按下则应该直接进入活动B. 但是反向流程应该有效。表示D-C,C-B.

5 个答案:

答案 0 :(得分:0)

将意图发送到其他活动时使用finish()方法。在此声明后,startActivity呼叫时使用finish()finish()方法从堆栈完成了活动。如果您要显示之前的活动,请在发送finish()时删除Intent方法。

答案 1 :(得分:0)

像这样打电话:)

调用所有这样的活动

Intent i = new Intent(FirstActivity.this, SecondActivity.class);
                startActivity(i);

但是当你从E按回来然后在点击

上的后退按钮中调用它
 Intent i = new Intent(FirstActivity.this, SecondActivity.class);
            startActivity(i);
 finish();

即只有这种特殊的E活动不会保留在堆栈中,所有其他活动都会出现,就像逆流应该有效一样。表示D-C,C-B。

答案 2 :(得分:0)

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();

其他方式是

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

和其他方式是添加

android:noHistory="true" 

在您的清单中,如http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

所述

答案 3 :(得分:0)

在每个活动类上添加onActivityResult。如果E完成D {#1}}将被调用,那么你可以再次完成你的D课程等等。通过这种方式,您可以处理您想要的任何内容。要获得onActivityResult,您需要通过请求代码调用onActivityResult来启动您的活动。 供您参考:Getting a Result from an activity

答案 4 :(得分:0)

就像

这样的startActivity
        Intent i = new Intent(currentActivity.this,NextActivity.class);
        startActivity(i);
        currentActivity.finish();

如果要杀死后台运行的活动,请使用

 try
    {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("CLOSE_ALL");
         broadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                ActivityName.this.finish();
            }
        };
        registerReceiver(broadcastReceiver, intentFilter);
    }
    catch(Exception e)
    {

    }