我有两个包:
我在SurveyDemoActivity中创建了一个退出按钮,点击此按钮后,它提示“你真的想退出”有两个选项:
当我点击返回时,它会转到SurveyDemoActivity,如果我点击退出则没有任何反应。
如果我点击退出按钮,我想完成两项活动(“SurveyDemoActivity”和“HomeActivity”)。我该怎么办?
任何帮助表示赞赏。
提前致谢。
答案 0 :(得分:0)
您应该SurveyDemoActivity
作为StartActivityForResult
启动,以便用户点按quit
并确认它,您可以设置相应的结果,在finish
中调用HomeActivity
也是。
答案 1 :(得分:0)
你可以:
1)定义RC_SURVEY = 3
和RESULT_QUIT = 33
2)使用startActivityForResult(intent, RC_SURVEY);
3)关于“退出”,关闭SurveyDemoActivity:
setResult(RESULT_QUIT);
finish();
4)在HomeActivity的onActivityResult中检查结果和关闭父活动:
if(request == RC_SURVEY && result == RESULT_QUIT)
finish();
答案 2 :(得分:0)
您可以使用BroadcastReceiver,一旦用户点击退出按钮,发送广播就可以杀死该活动。
在第一个活动中:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter();
filter.addAction(MainActivity2.CUSTOM_INTENT);
registerReceiver(receiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
并在第二个活动中:
public static final String CUSTOM_INTENT = "custom.intent.action.KILL";
Button button = new Button(this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent();
i.setAction(CUSTOM_INTENT);
sendBroadcast(i);
}
});