在作为 facebook messenger 应用程序的一部分的 facebook 聊天头中,我注意到以下行为:据我所知,聊天头本身和打开的聊天屏幕都是服务的一部分。不涉及任何活动。
我怎么能确定?在打开的聊天屏幕上按主页后,它会最小化回聊天头,我可以立即重新打开聊天屏幕。如果聊天屏幕是一个活动,然后startActivity(intent)
在按下主页按钮后重新打开活动,将延迟活动的启动,如下所示:
在按下 HOME 按钮后从服务启动活动,没有 5 秒延迟
在我的服务 onCreate 方法中,我使用以下代码显示来自服务的 UI:
public class ServiceTest extends Service {
...
@Override
public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
windowManager.addView(someView, params);
}
....
}
有谁知道如何直接从显示 UI 的服务接收“按下主页按钮”事件?当用户按下主页按钮时,我想最小化我的视图(类似于 facebook 聊天头)。