<< Android-Note
アプリ側でホーム画面に戻る方法
アンドロイド端末では画面下についているHOMEボタンを押すとホーム画面に戻るようになっています。
この動作をアプリ側で行いたいと思って次のようなコードを書いてみました。
long eventTime = SystemClock.uptimeMillis(); KeyEvent event = new KeyEvent(eventTime, eventTime, KeyEvent.ACTION_MULTIPLE, KeyEvent.KEYCODE_HOME, 1, 0); //HOMEボタンが押されたときのイベント dispatchKeyEvent(event); //キーイベントを発行
ホームボタンが押されたときのイベントを自作してまるでホームボタンが押されたような動作をさせようとしています。
しかし、これはうまくいきません。なぜかというとアプリ側ではホームボタンを受け取れないようになっているからです。
そこで調べてみるとホーム画面に戻るためのIntentを発行すればよいということが分かりました。
やり方は次の通りです。
public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button backHomeButton = (Button)findViewById(R.id.back_home_btn); backHomeButton.setonClickListener(new View.onClickListener() { public void onClick(View v) { //ホーム画面に戻るインテントを起動 Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory(Intent.CATEGORY_HOME); homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); MainActivity.this.startActivity(homeIntent); } }); } }
ACTION_MAINが新しく起動するインテントであることを示す名前、CATEGORY_HOMEがホーム画面に戻るインテントの名前です。
この例ではボタンを押したときにホーム画面に戻るようにしています。
以上がホーム画面に戻る方法です。
© Kaz