在我的應用程序中,我想控制硬件back button
。這意味着在我的應用程序中有四五個活動。現在假設我從一個活動轉移到另一個活動。如何控制硬件後退按鈕
現在在我的情況下,當我按下硬件後退按鈕我希望我的應用程序退出任何活動,我一直在但我的應用程序時,按下此後退按鈕比它不會退出我的應用程序,直到它到達第一次活動...所以我的問題是,我該怎麼做,以便當我按下硬件後退按鈕時,它將退出我的應用程序...請建議我。
在我的應用程序中,我想控制硬件back button
。這意味着在我的應用程序中有四五個活動。現在假設我從一個活動轉移到另一個活動。如何控制硬件後退按鈕
現在在我的情況下,當我按下硬件後退按鈕我希望我的應用程序退出任何活動,我一直在但我的應用程序時,按下此後退按鈕比它不會退出我的應用程序,直到它到達第一次活動...所以我的問題是,我該怎麼做,以便當我按下硬件後退按鈕時,它將退出我的應用程序...請建議我。
試試這個:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_BACK)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
return true;
}
return false;
}
但我寫這個代碼意味着有五個活動在我的應用程序中,所以在哪個活動中我寫這個代碼..但是在哪個事件中執行這個代碼 – AndroidDev
@Anshuman,這就是你想要在這裏。您必須在可見的Activity中檢查它,並且它將在該Activity中執行。那麼如果你使用這個,它會開始新的活動。 –
您將有所有5個活動的實例存儲在一個共同的類,並且在每一個活動添加onBackPressed()
,它將調用在公共類的方法,它會調用activity.finish()
5個活動中的每一個。
例如:
class Activity1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyController.getInstance().setActivity1(this);
}
public void onBackPressed() {
MyController.getInstance().closeAllActivities();
super.onBackPressed();
}
}
類似地,寫活性2,Activity3,等等。而且,類myController的是這樣的:
class MyController {
private static MyController instance;
private Activity activity1, activity2, activity3, activity4, activity5;
private MyController() {}
public static synchronized MyController getInstance() {
if(instance == null) {
instance = new MyController;
}
return instance;
}
public void setActivity1(Activity activityObject) { activity1 = activityObject; }
public void setActivity2(Activity activityObject) { activity2 = activityObject; }
public void setActivity3(Activity activityObject) { activity3 = activityObject; }
public void setActivity4(Activity activityObject) { activity4 = activityObject; }
public void setActivity5(Activity activityObject) { activity5 = activityObject; }
public void closeAllActivities() {
if(activity1 != null) {
activity1.finish();
}
if(activity2 != null) {
activity2.finish();
}
if(activity3 != null) {
activity3.finish();
}
if(activity4 != null) {
activity4.finish();
}
if(activity5 != null) {
activity5.finish();
}
}
}
你可以請示範我的例子..我是新的android.and我不知道如何實例在普通類中的所有5個活動 – AndroidDev
我會更新我的答案與此。 – sparkymat
好的SparkYmat ..我會在那..感謝您的建議.. – AndroidDev
嗷,我想打字「後退」和「機器人」在這裏計算器會給你很多類似的命中.... – Nanne
Wow-你怎麼弄這種回答你的問題,甚至不接受答案? – IcedDante