Chúng tôi có một ứng dụng với một Hoạt động có thể được bắt đầu bằng hai cách:Tại sao chúng ta có được những ý tưởng "không hợp lệ" này?
- Từ Hoạt động khác - luôn luôn có một số dữ liệu thêm điền vào
- Từ liên kết sâu
Theo như tôi có thể thấy điều này luôn hoạt động tốt. Chúng tôi có thể nhận được Intent.ACTION_VIEW
với URI dữ liệu hoặc chúng tôi nhận được một số tính năng bổ sung chuỗi.
Tuy nhiên, chúng tôi có một số ít trường hợp hành động là Intent.ACTION_MAIN
và không có thêm dữ liệu nào.
Các toString()
của Ý định là như sau (tên lớp thay đổi):
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10400000 cmp=com.example.OurActivity }
Intent.getExtras()
lợi nhuận null, Intent.getDataString()
lợi nhuận null.
Trong trường hợp này, điều này có thể xảy ra? Tại sao danh mục cho Hoạt động Intent.CATEGORY_LAUNCHER
? Làm cách nào để chúng tôi có được dữ liệu cần thiết để hiển thị cho người dùng nội dung phù hợp?
launchMode
không được chỉ định cho Hoạt động. Chỉ IntentFilter
trong AndroidManifest.xml
là dành cho liên kết sâu (chứ không phải danh mục trình khởi chạy).
Sự cố xảy ra trên Android 4-6 trên nhiều loại thiết bị.
Edit: Quên đề cập đến những lá cờ:
Khi in ra gợi ý những lá cờ cho tiếp cận mục đích là FLAG_ACTIVITY_NEW_TASK
và FLAG_ACTIVITY_BROUGHT_TO_FRONT
. Tôi cho rằng điều đó có thể có liên quan ở đây.
Tôi tin rằng bạn là đúng. Nova Launcher không gửi bất kỳ hành động hoặc danh mục nào, nhưng các trình khởi chạy khác có thể làm điều đó một chút khác biệt/đúng. –