我将活动列表作为表单但是一旦表单完成,我想清除除第一个活动之外的所有堆栈但显示一个新活动,因此当点击新活动时将返回到第一个活动。 / p>
E.g。 A - > B - > C - > D然后变成A - > E因此,在D ..上提交表格后,用户可以看到E
我是否以这种方式推出?
Intent message = new Intent();
message.setFlag(ACTIVITY_FLAG_CLEAR_TOP)
message.addClass(getContext(), E.class)
startActivity(E.class);
答案 0 :(得分:0)
我认为正确的是FLAG_ACTIVITY_CLEAR_TOP
Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
答案 1 :(得分:0)
当我想从应用程序注销时,我会告诉你我这样做的方式。
这可以帮助您完成活动B - > C - > D并开始活动A
首先,我在具有会话详细信息的类中创建一个注销方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.test.your.packgage.ACTION_LOGOUT");
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("onReceive","Logout in progress");
finish();
}
}, intentFilter);
}
然后,在每项活动中你都必须这样做:
public class MainActivity extends AppCompatActivity{
private EditText editText;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter = 0;
Firebase.setAndroidContext(this);
final Firebase firebase = new Firebase("https://samp-is.firebaseio.com/");
editText = (EditText) findViewById(R.id.editText);
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new MessageAdapter(this, Message.class, R.layout.fragment_message, firebase.child("chat")));
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
counter++;
Message message = new Message();
message.setMessage(editText.getText().toString());
editText.setText("");
message.setAuthor("Name");
message.setCounter(counter);
firebase.child("chat").push().setValue(message);
}
});
}
}