我有一个活动A正在收听一些websocket消息,当它收到某些消息时,它将通过startActivity()
导航到活动B.
当应用程序处于前台时,情况正常,但当它在后台时,startActivity()
将导致应用程序自动启动。
我如何" sliently" startActivity()在后台没有带来 应用程序前景?
答案 0 :(得分:3)
你不能。您可以做的是设置一个标志,然后在onResume中调用startActivity,如果设置了标志,则调用下一个活动。
或使用片段代替活动。
答案 1 :(得分:1)
不可能直接这样做,但是您可以尝试在活动开始时尽量减少应用程序。
在您的活动的onCreate
方法中,使用以下语句:
YourActivity.this.moveTaskToBack(true);
当然,您需要使用一些标志和附加内容,以防止在其他情况下将其最小化。
答案 2 :(得分:1)
正如@Gabe所说,你可以通过设置一个标志来做到这一点,就像我们通过检查SharedPreference中的用户对象来打开登录或主要活动一样。
if(SharedPreference Message count > 0){
startActivity(new Intent(this, YourChattingActivity.class));
}
此外,您还需要在SharedPreference中设置消息计数。
答案 3 :(得分:1)
使用以下链接,您可以实现您想要的效果: Here is the solution to check activity status and handle according to that.