从非活动类调用活动

时间:2015-02-18 17:50:04

标签: android adapter sync

我遇到过这个问题,我在非活动类中运行后台进程。我在前台有一项活动。我想刷新活动,即调用MainActivity.java,使其打开并且不会复制正在运行的应用程序(导致错误)。

更具体地说,我在后台运行android SyncAdapter.java。我的菜单刷新项被用户点击。动画开始让它旋转一圈。然后调用同步适配器,后台进程开始运行......完成后我再打回一个新的活动:

Intent intent = new Intent("com.example.MainActivity");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_FROM_BACKGROUND | Intent.FLAG_ACTIVITY_CLEAR_TASK);
// mContext is a global variable of passed application context.
mContext.startActivity(intent); 

这允许我关闭所有打开的活动/任务并打开这个新活动,以便用户在应用程序的主页上恢复,而无需额外的重复窗口。

我唯一关心的是那些" | "在代码中。有人可以向我解释intent.setFlags(***)电话中发生的事情吗?标志是一个接一个地被调用的吗?或者是每个标志被传送到下一个标志呼叫的结果? (" |"是否被视为管道呼叫?)

谢谢!

2 个答案:

答案 0 :(得分:3)

这是一个包容性的OR。

它使用所有标志在位级别进行OR运算,然后使用结果调用setFlags方法。

答案 1 :(得分:1)

|是按位OR条件。它使用这些标志的二进制值在位级别(与具有||的逻辑OR相反)执行布尔OR运算。