일반적으로 안드로이드를 사용하다 보면 화면을 내리고 싶을 때 홈 버튼을 자주 사용합니다.
이렇게 홈 버튼처럼 앱 화면을 백그라운드로 내리려는 동작을 예제로 작성해보려고 합니다.
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: