Activity trong Android là gì?
Activity trong Android được xem là một màn hình tương tác trong ứng dụng Android. Activity chịu trách nhiệm chuyển giao sự kiện cho các view trong nó và quản lý vòng đời (LifeCycle) của nó. Một ứng dụng Android có thể có một hoặc nhiều Activity. Và những Activity này có vòng đời độc lập với nhau và được duy trì trong Activity BackStack.
Vòng đời của Activity
Trước tiên chúng ta sẽ cùng nhau tìm hiểu vòng đời của Activity sau đó sẽ đi đến phần thực hành để hiểu rõ hơn.
Sơ đồ mô tả vòng đời của ứng dụng Android.
1. onCreate()
Phương thức callback này được gọi khi ứng dụng mới start, nhưng chưa có thể tương tác với người dùng. Ở trong phương thức này chúng ta thường sử dụng để setContentView(), khởi tạo cái view, inflate view từ xml đăng kí event cho view, khởi tạo Adapter cho ListView, RecyclerView…
2. onStart()
Phương thức callback này được gọi ngay sau khi onCreate()b được gọi. Ở phương thức này chúng ta vẫn chưa tương tác được với người dùng trên UI.
3. onResume()
Phương thức này được gọi ngay sau khi onStart() được gọi. Ở phương thức này chúng ta có thể tương tác được với UI.
4. onPause()
Phương thức callback này được sử dụng khá phổ biến trong vòng đời của Activity. Chúng ta thường lưu lại trạng thái của các biến trong method này.
5. onStop()
Phương thức callback này có thể được gọi ngay sau khi phương thức onPause được gọi. Phương thức này được gọi khi chúng ta nhấn nút home app.
6. onRestart()
Phương thức callback này gọi khi activity đã stoped, gọi trước khi bắt đầu start lại Activity.
7. onDestroy()
Phương thức này đợc gọi khi chúng ta nhấn back từ activity, hoặc call method finish() của activity.
Trên đây chúng ta đi cùng nhau tìm hiểu lý thuyết. Tiếp theo sẽ đi vào phần thực hành để cùng hiểu vòng đời trong Android là cái gì.
Example:
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e(TAG, "onCreate: "); findViewById(R.id.btn_nav).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(MainActivity.this, OtherActivity.class)); } }); } @Override protected void onStart() { super.onStart(); Log.e(TAG, "onStart: "); } @Override protected void onRestart() { super.onRestart(); Log.e(TAG, "onRestart: "); } @Override protected void onResume() { super.onResume(); Log.e(TAG, "onResume: "); } @Override protected void onPause() { super.onPause(); Log.e(TAG, "onPause: "); } @Override protected void onStop() { super.onStop(); Log.e(TAG, "onStop: "); } @Override protected void onDestroy() { super.onDestroy(); Log.e(TAG, "onDestroy: "); } }