基本上,我有一个活动,其中包含视频会议应用的代码。我需要在后台保留它。因此,当用户按下按钮时,我创建一个FloatingViewService,并从我的活动中将数据发送到该FloatingViewService。我可以举例说(这个工作),启动一个新的意图,并使用它来浏览我的应用程序,而我之前的活动仍在工作,并将数据发送到FloatingViewService。 现在我的问题是我不想开始随机活动,但我想在开始通话之前回到之前的活动。 当我开始通话时,我这样做:
Intent intent = new Intent(HomeActivity.this, InCallActivity.class);
intent.putExtra("url", "url");
intent.putExtra("test", false);
startActivity(intent);
注意!创建第二个活动后,如果我调用完,它将带我进入我的HomeActivity。哪个很棒。 但我不想完成,我只是想进入我的班级被调用的活动。
我尝试使用:moveTaskToBack(true);
,但它会将应用程序发送到主屏幕。
我也做了这个代码:
ActivityManager m = (ActivityManager) getSystemService(ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> runningTaskInfoList = m.getRunningTasks(10);
Iterator<ActivityManager.RunningTaskInfo> itr = runningTaskInfoList.iterator();
while(itr.hasNext()){
ActivityManager.RunningTaskInfo runningTaskInfo = (ActivityManager.RunningTaskInfo)itr.next();
int id = runningTaskInfo.id;
CharSequence desc= runningTaskInfo.description;
int numOfActivities = runningTaskInfo.numActivities;
String topActivity = runningTaskInfo.topActivity.getShortClassName();
Log.i("","top activity: " + topActivity);
}
认为我可以使用FLAG_ACTIVITY_REORDER_TO_FRONT
但我没有恢复活动,为什么? 我得到的只是:
12-06 13:17:54.213: D/HeartRateApplication(3168): top activity: com.vidyo.vidyocore.activities.WebViewActivity
12-06 13:17:54.213: D/HeartRateApplication(3168): top activity: com.google.android.launcher.GEL
但如果我完成了,显然我的HomeActivity就在那里,因为它让我回到了它。为什么我不能从正在运行的活动中获取它? 我该如何解决这个问题?
有评论说我应该有意图开始活动。所以我觉得也许我不够清楚。
我无法启动默认活动的意图。
有可能从多个活动中调用此InCallActivity。因此,我需要知道之前有什么活动,所以我可以调用该活动的意图,就像我说FLAG_ACTIVITY_REORDER_TO_FRONT
因此使用runningTaskInfo
的逻辑但不能为我提供整个后台。有没有另一种方法来获得后台,所以我真的可以知道开始的活动了吗?
答案 0 :(得分:1)
使用 Intent.FLAG_ACTIVITY_CLEAR_TOP
启动活动你也可以参考 this
String Activity name= getIntent().getStringExtra("mActivityName");
使用它来跟踪您的活动流程和名称。