私のアンドロイドアプリのユーザーは、特定のアクティビティで戻るときに自分のアプリを離れることができます。これはできますか?戻るボタン付きアンドロイドアプリを離れる
答えて
あなたはこのような何かを試すことができますが(終了を確認するダイアログが表示されます)お勧めしません。より正しい「正しい」方法は、おそらく、押されたときに意図をブロードキャストすることであり、アプリケーションのアクティビティがその意図を受け取った場合は、自分自身で終了します。
これは単に戻るボタンのような以前の活動に彼を戻すのではないでしょうか? http://developer.android.com/reference/android/app/Activity.html#finish() –
は、私の回答 –
をSystem.exit(0)を使用して編集しました。なぜあなたがする必要があるかわからない限り、アドバイスされていません.. –
[戻る]ボタンを無効にすると、何かを達成できます。
@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
System.exit(0);
}
}).setNegativeButton("No", null).show();
}
それは注意しなければならない、それがその出アプリの下のコメントに記載されているようにSystem.exitがあると:
は@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Do whatever you want with your activity
// And for closing the whole app, you can use System.exit() which is absolutely not recomended
return true;
}
return super.onKeyDown(keyCode, event);
}
は
私はそれがOPに答えているとは思わないアプリを離れる方法についての質問。 – alex
なぜonBackPressed()を使用しないのですか? –
良い方法は、あなたが活動のonBackPressed()をオーバーライドして、あなたがそれでやりたいことができますバック
private boolean _doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
Log.i(TAG, "onBackPressed--");
if (_doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this._doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Press again to quit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
_doubleBackToExitPressedOnce = false;
}
}, 2000);
}
これは、ユーザーエクスペリエンスを完全に破壊するので、恐ろしい方法です。 Backを押したときにダイアログをポップアップするよりも少し面倒ですが。 – ge0rg
これは、よく知られているアプリやそのような人々に使用されています。ポップアップ(はい/いいえ)よりも束縛されず、ユーザーにシンプルな選択肢を与えます –
はい、残念です。 Android上の多くのアプリでUXが壊れていますが、引き続きユーザーに推奨する理由はありません。選択については、ユーザーは既にプッシュバックしたときに現在のアクティビティを終了することを選択しました。それらを混同する必要はありません。 – ge0rg
秒待つことです。あなたはこの1
public void onBackPressed() {
moveTaskToBack(true);
}
System.exit(0)を使用します。 onbackpressedで – ashokk
バックボタンの目的を破ると予想されるでしょうあなたが求めているものと思われる:ここに戻って押されたときにアプリを終了コードがありますアプリケーションのフロー。ユーザは、戻るボタンを押すと、それらを前の活動画面に戻すことを期待する。
アプリケーション全体を戻るボタンで終了する場合は、startActivity()を使用するたびにfinish()を呼び出します。これにより、ユーザーが戻るボタンを押したときにアプリケーションを終了するので、現在のアクティビティが終了します。
を試すことができます
@Override
public void onBackPressed(){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
ホーム画面からログイン画面に戻る、またはスプラッシュ画面に戻るなど、以前のアクティビティ画面に戻ることがない場合があります。 –
あなたのマニフェストのすべての活動の中に入れて:バックプレスで
<activity android:name=".MyActivity"
android:noHistory="true">
</activity>
をごActivity
から:
@Override
protected void onBackPressed() {
if (this.isFinishing()){
finish();
super.onBackPressed();
}
}
代わりの戻るボタンの動作を制御するFLAG_ACTIVITY_CLEAR_TOP意思フラグを使用することを検討して上書きをアプリケーションのアクティビティスタック。
設定され、起動されているアクティビティがすでに現在のタスクで実行されている場合、そのアクティビティの新しいインスタンスを起動する代わりに、その上にある他のアクティビティはすべて閉じられ、このインテントは新しいインテントとして(現在のトップに)古いアクティビティに配信されます。
たとえば、アクティビティA、B、C、Dからなるタスクを考えてみましょう。アクティビティBのコンポーネントを解決するインテントでDがstartActivity()を呼び出した場合、CとDは終了し、B与えられたインテントを受け取ると、スタックはA、Bになります。
上記の例を使用してください。私はバックプレスでアプリを残すために、このメソッドを使用し
Intent intent = new Intent(context, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
:活動Dから :このような何かを実装することになるすべての
@Override
public void onBackPressed() {
enter code here
finish();
}
これはアプリを終了しません。ちょうど現在の活動 –
最初に、あなたが望むことを完全に奇妙です通常、ユーザーがあなたのアプリを離れる場合、アンドロイドが残りの部分を処理し、デバイスのメモリ状態に基づいてデバイスを閉じたり、一時停止したりすることを決めるため、アプリケーションを閉じることができます。それについて。
アプリを終了したい場合は、アクティビティが1つしか実行されていない場合(ケースに戻るボタンを押した時点で)、そのアクティビティを閉じるとアプリケーション全体が閉じられます。つまり、意図を使って現在のアクティビティに送信し、以前のアクティビティを終了しなかった場合、this.finish()
を使用すると、現在のアクティビティが閉じられ、以前の一時停止したアクティビティが戻されます。そうしないと、アプリケーション全体が閉じられます。 アクティビティがフラグメントを使用し、フラグメントがレイアウトなしである可能性があるという事実を考慮してください。それはまだ実行中にアプリケーションが閉じているようです。
しかし、ハードウェアのバックキーを使って仕事をするにはどうすればいいですか?私は、これは古い記事ですけど、この
@Override
public void onBackPressed()
{
if(/* check a condition to make sure you are in that certain activity */)
{
Process.killProcess(Process.myPid());
}
else
{
super.onBackPressed();
}
}
幸運
を行う必要があります。しかし、これは自分のアプリケーションに同じ機能を実装したいと思っていたときと同じように、誰かにとって役に立ちます。
ダブルバックを識別するソリューションは、2回のバックプレスの間の時間を計算することによって実行できます。差が2秒(すなわち、2000ミリ秒)未満である場合は、それをダブルバックプレスとして受け入れ、アプリケーションから終了することができる。それ以外の場合は、トーストメッセージを表示します。
本のシンプルな実装は次のようになります。
private static long back_pressed;
@Override
public void onBackPressed()
{
if (back_pressed + 2000 > System.currentTimeMillis())
super.onBackPressed();
else
Toast.makeText(getBaseContext(), "Press once again to exit!",Toast.LENGTH_SHORT).show();
back_pressed = System.currentTimeMillis();
}
コードは、ここでは、このlink
@Override
public void onBackPressed(){
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}).setNegativeButton("No", null).show();
}
で見つけることができbackPressedを(管理するための準備方法です)一度に2回押すときと確認ダイアログを呼び出してください:
- 1. 戻るボタン付きのJQuery Ajax
- 2. ember.jsに「条件付き」戻るボタンを実装する
- 3. 戻るボタン付きのツールバーでカスタムタイトルを使用する
- 4. アンドロイドアプリ付きのSQLiteデータベースを束ねる
- 5. UIWebview完了または戻るボタン付きのPDFを表示
- 6. イベントキャッチャー、戻るボタン付きのキーボードを隠すため
- 7. AppCompatActivityとツールバーを含むActionBarDrawerToggleフラグメント付きの戻るボタン
- 8. アンドロイドアプリのボタン付き10個のテキストビューボックスの乱数
- 9. アンドロイド:FragmentのgetContext()は、戻るボタンを離れるときにのみnullを返します。
- 10. 戻るボタンの機能画面キャッシュ付きKivy
- 11. iOS戻るボタンを上書きする
- 12. イオンタブ戻るボタンを
- 13. Jquery戻るボタン。
- 14. ララベル戻るボタン
- 15. AngularJS戻るボタン
- 16. アンドロイド戻るボタン
- 17. カスタム戻るボタン
- 18. 条件付きで断片のボタンを取り戻す
- 19. reloadOnSearch:falseのときの戻るボタン
- 20. 前のページに戻る[戻る]ボタン
- 21. ボタン付きTkInterエントリからの戻り値
- 22. gplv2の音楽付き有償アンドロイドアプリ
- 23. 戻るボタンのリスナー
- 24. mediaPlayerと戻るボタン
- 25. Djangoの戻るボタン
- 26. ビューページの戻るボタン
- 27. Androidオーバーライド戻るボタン
- 28. アンドロイドウェブビューの戻るボタン?
- 29. 戻るボタンとiframe
- 30. UITableViewControllerの戻るボタン
共有プレフィックスのアクティビティの状態を保存します – KOTIOS
あなたの活動の流れを説明する方が良いでしょう – stinepike
あなたはアプリを完全に終了し、貴重な活動に戻らないことを意味しますか? –