일반적으로 안드로이드를 사용하다 보면 화면을 내리고 싶을 때 홈 버튼을 자주 사용합니다. 이렇게 홈 버튼처럼 앱 화면을 백그라운드로 내리려는 동작을 예제로 작성해보려고 합니다.     1. Home 버튼 (코틀린) class MainActivity :...

[안드로이드] 홈버튼, 액티비티 백그라운드로 내리기 (자바/코틀린)



일반적으로 안드로이드를 사용하다 보면 화면을 내리고 싶을 때 홈 버튼을 자주 사용합니다.

이렇게 홈 버튼처럼 앱 화면을 백그라운드로 내리려는 동작을 예제로 작성해보려고 합니다.





 

 

1. Home 버튼 (코틀린)

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.btnHome.setOnClickListener {
homeAction()
}
}

private fun homeAction() {
val intent = Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_HOME)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)
}
}








2. Home 버튼 (자바)

public class MainActivity extends AppCompatActivity {

private ActivityMainBinding binding;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.btnHome.setOnClickListener(v -> {
homeAction();
});
}

void homeAction() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}

 

 

 

 

 

 

 

3. CATEGORY_HOME

마지막으로 CATEGORY_HOME에 대해서 알아보고 마무리하려고 합니다.

작성된 예제를 보면 Intent를 통해 CATEGORY_HOME에 대한 Activity를 호출하는 형태인데요,

안드로이드 공식 문서를 보면..

CATEGORY_HOME는 부팅 됐을 때의 첫번 째 Home Activity를 나타낸다고 합니다.

해당 Home Activity를 호출하기 때문에 Home 버튼과 같은 동작이 되는것으로 보면 될 것 같습니다.

 

 

 

 

 

 

[Reference]

Android Developer (CATEGORY_HOME)

 

 

 

 

 

0 comments: