質問
ユーザーがボタンをクリックすると、Androidでプログラムでホーム画面に行きたいです。これはどうすればいいですか?
解決
これを介してこれを行うことができます 意図.
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
この意図は、ユーザーが定義したランチャーアプリケーションを開始します。これは、ユーザーがこれを期待していない場合、アプリケーションがクラッシュしたように見えるため、これに注意してください。
これをアプリから出口ボタンを作成する場合は、この記事を読んでください ボタンを終了します Androidで
他のヒント
1つのラインソリューション
moveTaskToBack(true); //activity.moveTaskToBack(true);
ホームボタンが押されると動作します
ヤヌスの答え 素晴らしいです。
私が追加したい唯一のことは、コメントには少し長すぎることですが、現在のアクティビティに言及することなくホーム画面に行くことができるということです。
Januszのコードは、アクティビティまたはフラグメントから呼び出す必要があります startActivity()
,
これを回避するには、アプリケーションファイルにアプリのコンテキストへの静的参照を保存できます。
public class YourApplication extends Application
{
private static Context mAppContext;
public void onCreate()
{
super.onCreate();
...
YourApplication.mAppContext = getApplicationContext();
}
public static Context getContext()
{
return mAppContext;
}
}
これで、現在のアクティビティを参照してアクティビティ、フラグメント、またはその他のクラスだけでなく、アプリの任意のクラスからユーザーをデバイスホーム画面に送信できます(これが良いことであるか悪いことか判断できます):
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);
から Android開発者 サイト
これらの追加パラメーターを使用して意図として指定できる他の操作の例をいくつか紹介します。
* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
私はこれが少し遅れていることを知っていますが、私も同じ問題に遭遇し、ここでそれを解決した方法があります。あなたに戻る MainActivity
出口からフラグを追加する必要があります Activity
final Intent mainActivity = new Intent(this, MainActivity.class);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
今、あなたが戻るボタンを押したとき MainActivity
アクティブなものは、ホーム画面に移動します。