2013-07-16 36 views
0

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

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

什么是你的logcat的堆栈跟踪? –

+0

没有错误登录我的logcat –

回答

0

关闭怎么样?你的意思是说另一项活动出现在前台?

通常,后退按钮将弹出最近的任务堆栈顶部的活动。如果堆栈中有更多的活动,则下一个到达前台。如果有不是任何更多的活动,控制传递给前一个任务(前一个应用程序)。如果你从家开始,你会回到家。

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

+0

该应用程序完全关闭...我有一个意图,开始onBackPressed,但它似乎并没有称之为... –

0

是否使用

finish(); 

调用该活动后,您目前在? (ScoreMenu我猜。)

原因完成();会在启动新的活动时杀死启动器活动。

+0

嗨MonkeyDroid!...我不打电话完成()在我的活动任何地方 –

0

当你在share(String score)里面调用startActivity之后,Share对话框打开,对不对?此时,如果用户按下后退按钮,对话框应该消失,并且您的活动(ScoreMenu,我认为)会再次可见。这是默认行为,您不需要重写onBackPressed就可以拥有它。

+0

嘿,谢谢你的答复...是共享对话框打开,我已经删除了onBackPressed方法,当我按下后退按钮它仍然关闭应用程序,没有错误或崩溃在日志 –

+0

问题解决...在我的清单我的分数菜单活动中有android:noHistory =“true”... man im noobo! –

相关问题