Làm thế nào để kích hoạt onPause() trong Android?

Cho mình hỏi làm thế nào để kích hoạt onPause() trong android mà không kèm onStop()? Mình có sreach google nhưng có 1 bài bên stackover giống chủ đề, nó giải quyết bằng cách tạo một semi-transparent. Mình có làm theo nhưng nó bị lỗi :frowning: crash phần mềm. Vậy bạn nào biết cách test onPause() không, chỉ mình với.
Lần đầu mình cứ tưởng máy cái như thanh điều hướng của hệ thống củng có thể gọi được onPause(), vì đơn giản nó có củng che khuất 1 phần màng hình và củng focus nào nó :smile: mà không được :v, chắc mình nhầm.

mình nghĩ trong MainActivity (của Android studio) bạn nhấn: ctrl + o sau đó chọn hàm OnPause thì nó chỉ override hàm Onpause() thôi.

MÌnh cần cách để gọi onPause(), chứ không phải là ghi đè onPause() vì ghi đề thì mình biết mà @@. Làm sao để gọi được onPause()???

bạn thử this.onPause(); :grinning:

1 Like

Nhưng giờ mình muống tạo một semi-transparent để nó che khuất đi activity chính đồng thời làm mất focus vào activity chính, thì làm sao?

Bạn cần tạo 1 dialog (activity dạng cửa xổ) khi bạn gọi dialog đó thì MainActivity của bạn ở onPause(), nhưng nó cũng có thể destroy bất cứ lúc nào, vì có thể máy hết ram, hoặc cần chạy app khác ưu tiên hơn. Nếu bạn muốn dialog đó trong suốt thì set thuộc tính alpha = 0

1 Like

Nó crash… Chả biết tại sao :v, mình củng thử làm translucent mà củng bị y chan :v.
Mình gọi nó bằng:

startActivity(new Intent(this,popup.class));

Đã sữa Manifest:

Bạn có thể up lỗi chỗ log lên để mọi người có thể giúp bạn.

1 Like
 --------- beginning of crash
07-27 18:26:33.697 2361-2361/com.example.tranl.stopwatch E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: com.example.tranl.stopwatch, PID: 2361
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tranl.stopwatch/com.example.tranl.stopwatch.popup}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:148)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                            Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                                               at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:343)
                                                                               at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:312)
                                                                               at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:277)
                                                                               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                               at com.example.tranl.stopwatch.popup.onCreate(popup.java:11)
                                                                               at android.app.Activity.performCreate(Activity.java:6237)
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:148) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Cái này chắc đúng là log ghi lỗi bạn nhỉ? Vui lòng kéo qua bên trái 1 tý :slight_smile:

bạn thử thay đổi them trong Manifest android.theme = @style/Base.Theme.AppCompat.Light.Dialog

2 Likes

bạn mở mới 1 Activity dạng Dialog thì Activity kia sẽ mất focus và gọi onPause()

1 Like

Oke mình làm được rồi :slight_smile:

Bác có thể giải thích tại sao đoạn theme này cần thay đổi kh bác nhỉ ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?