2017-09-01 163 views
8

意向标志结合我想两个意图标志结合起来,因为我们在娄安卓如何科特林

Intent intent = new Intent(this, MapsActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); 

我试图做这样的事情,但它并没有为我

val intent = Intent(context, MapActivity::class.java) 
intent.flags = (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK) 

回答

14

说明:

应用于标志的操作是按位或。在Java中,您拥有|运算符。

由于位运算[在科特林],还有就是无特殊字符 对他们来说,只是命名能够在缀形式被调用的函数。

Source

这里Int所有位操作的列表,并Long

  • shl(bits) - 签署左移(Java的<<
  • shr(bits) - 签署右移(Java的>>
  • ushr(bits) - 无符号右移(Java的>>>
  • and(bits) - 按位与(Java的&
  • or(bits) - 按位或(Java的|
  • xor(bits) - 按位异或(Java的^
  • inv() - 按位反转(Java的~

解决方案:

所以,在你的情况下,你只需要在你的参数之间调用or就可以了。

intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK 
1
工作

尝试类似如下:

val intent = Intent(this, MapsActivity::class.java) 
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK