2017-09-01 204 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