在MainActivity启动后,调用应用内消息的特定活动,而不在SplashActivity中



我有一个处理传入应用内消息的服务。该应用程序有一个SplashActivity、MainActivity和第二个Activity,调用该Activity可显示来自服务的应用内消息。如果启动mainActivity需要更长的时间,则应用内将显示在SplashActivity中。如何确保只有在向用户显示MainActivity之后才调用应用内消息活动(由服务启动(。

我在SplashActivity中显示的Firebase应用内消息中看到了类似的问题。如何在MainActivity中显示?,但我有自己的应用内消息处理实现。

如何确保应用内消息活动(由服务(仅在显示MainActivity之后调用给用户。

您应该等待您的活动视图布局,然后显示您的消息,为此,您可以添加一个全局布局侦听器来查看其中一个活动视图的树观察器:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View view = findViewById(R.id.some_view_id);
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// Display your in-app message here
}
}
}
}

我认为可以避免您的问题,方法是不将活动用于splashscreen,而是执行splashscreen;正确的方式";这是关于这篇文章的链接。这意味着在加载主活动时,只需在主活动的背景中使用启动屏幕。

最新更新