Sni*_*per 5 android android-activity
在我的应用程序中,我有活动A,B,C,D和E.第一个活动是A然后打开B然后是C和D.现在我的后台是ABCD.现在当我从DI移动到E想要完成后台堆栈中的所有活动时,现在E应该是堆栈中的第一个活动.
就我而言
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)
要么
android:launchMode="singleTask"
Run Code Online (Sandbox Code Playgroud)
没有用,因为我没有重新开放已经开业的活动.打开新活动时,我必须关闭后台堆栈中的所有活动.
请帮我这样做.
编辑后的最终答案
活动A 重要
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityA extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
startActivity(new Intent(ActivityA.this,ActivityE.class));
finish();
}
setContentView(R.layout.alayout);
Button play;
play = (Button) findViewById(R.id.aId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ActivityA.this,ActivityB.class));
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
活动B
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityB extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.blayout);
Button play;
play = (Button) findViewById(R.id.bId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ActivityB.this,ActivityC.class));
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
活动C
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityC extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.clayout);
Button play;
play = (Button) findViewById(R.id.cId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ActivityC.this,ActivityD.class));
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
活动D 重要
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityD extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.dlayout);
Button play;
play = (Button) findViewById(R.id.dId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
finish();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
活动E
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class ActivityE extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
setContentView(R.layout.elayout);
Button play;
play = (Button) findViewById(R.id.eId);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//startActivity(new Intent(ActivityE.this,ActivityE.class));
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
只要这样做
归档时间: |
|
查看次数: |
4045 次 |
最近记录: |