2013-07-16 61 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! –

相關問題