我的应用上有一个分享按钮。单击共享按钮时,将打开一个共享对话框,其中包含共享选项列表。问题是当我决定我不想分享(当对话框打开时)并按下手机上的后退按钮,应用程序关闭...我怎么能解决这个问题?我看不出问题
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
dbControl = new DatabaseControl(ScoreMenu.this);
dbControl.open();
score = dbControl.fetchBestTime();
dbControl.close();
share(score);
}
});
}
public void share(String score){
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "");
shareIntent.putExtra(Intent.EXTRA_TEXT, "");
startActivity(Intent.createChooser(shareIntent, ""));
}
@Override
public void onBackPressed() {
Intent goToMainScreen = new Intent(ScoreMenu.this, MainActivity.class);
if (android.os.Build.VERSION.SDK_INT >= 16) {
// Start activity with a custom animation
Bundle bundle_animation = ActivityOptions.makeCustomAnimation(ScoreMenu.this, R.anim.slide_in_right, R.anim.slide_out_left).toBundle();
startActivity(goToMainScreen, bundle_animation);
}
else {
startActivity(goToMainScreen);
}
}
希望你能帮忙......
答案 0 :(得分:0)
关闭怎么样?你的意思是另一个活动到了前台吗?
通常,后退按钮会弹出任务堆栈顶部的最新活动。如果堆栈中有更多活动,则下一个活动将进入前台。如果不再,则控制将传递给上一个任务(上一个应用程序)。如果你从家里开始,你会回到家里。
这就是您的应用所发生的事情。由于当您为选择器调用startActivity()时,您没有构建自己的任务堆栈并返回到您的应用程序,因此您将开始一项新任务。当你“退回”时,你会将此任务弹出到主页,而不是回到你的应用程序。
答案 1 :(得分:0)
您使用的是
吗?finish();
在致电您目前所在的活动后? (我猜是ScoreMenu。)
导致完成();在启动新活动时会杀死启动器活动。
答案 2 :(得分:0)
在share(String score)中调用startActivity后,会打开“共享”对话框,对吗?此时,如果用户按下后退按钮,对话框应该消失,您的活动(我认为ScoreMenu)将再次可见。这是默认行为,您无需覆盖onBackPressed即可拥有它。