0

我的应用程序上有一个分享按钮。单击共享按钮时,将打开一个共享对话框,其中包含共享选项列表。问题是当我决定不想分享(对话框打开时)并按下手机上的后退按钮时,应用程序关闭......我该如何解决这个问题???我看不到问题

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);
    }
}

希望你能帮助...

4

3 回答 3

0

在 share(String score) 中调用 startActivity 后,Share 对话框打开,对吗?此时,如果用户按下后退按钮,对话框应该消失,并且您的活动(我认为是 ScoreMenu)将再次可见。这是默认行为,您无需重写 onBackPressed 即可拥有它。

于 2013-07-19T14:16:08.180 回答
0

怎么关?你的意思是另一个活动出现在前台吗?

通常,后退按钮会将最近的活动从任务堆栈的顶部弹出。如果堆栈中有更多活动,则下一个活动将进入前台。如果没有更多的活动,控制权将传递给前一个任务(前一个应用程序)。如果您从 Home 开始,您将返回 Home。

这就是您的应用程序正在发生的事情。由于您没有构建自己的任务堆栈,当您为选择器调用 startActivity() 时会返回到您的应用程序,因此您正在启动一个新任务。当您“返回”时,您会将此任务弹出到主页,而不是返回您的应用程序。

于 2013-07-16T23:21:36.550 回答
0

你正在用吗

finish();

调用您当前所在的活动后?(我猜是 ScoreMenu。)

导致完成();会在启动新的启动器时终止启动器活动。

于 2013-07-19T12:58:36.533 回答