2017-04-26 18 views
1

假設如何開始的活動我有兩個活動A和B活性的含有一個按鈕,我想,當我按下按鈕而不意圖啓動活動B。的Android沒有意圖或底色

+1

做到這一點的唯一方法是使用意圖 –

+0

能告訴我爲什麼?你發明了什麼? –

回答

2

沒有辦法開始從anotherone活動沒有意圖。

0

把你的活性的片段中,並開始fromo按鈕的片段。

2

根據官方文件:

意圖是要執行的操作的抽象描述。它可以與startActivity一起使用來啓動Activity,broadcastIntent將其發送給任何感興趣的BroadcastReceiver組件,並且startService(Intent)bindService(Intent, ServiceConnection, int)與後臺服務進行通信。

一種Intent提供了用於執行運行時後期在不同的應用程序的代碼之間的結合的工具。其最重要的用途是開展活動,在活動中它可以被認爲是活動之間的膠水。它基本上是一個被動數據結構,它包含要執行的操作的抽象描述。

所以,你必須使用它,沒有例外和變通方法公開活動,如果你這樣做,你忽略了整個系統架構。

1

這些都是可能的方式來啓動任何活動

startActivity(new Intent(Activity_A.this, Activity_B.class)); 

第二

Intent intent = new Intent(Activity_A.this, Activity_B.class); 
startActivity(intent); 

Intent intent = new Intent(Activity_A.this, Activity_B.class); 
startActivityForResult(intent,code); 
0

如果你不希望用戶不使用Intent的理由重新進入以前的活動

您可以使用finish()完成該活動的意圖你

所做的工作後,
if(currentUser == null){ 
    startActivity(new Intent(MainActivity.this,StartActivity.class)); 
    finish(); 
} 

那麼用戶將無法再次備份

如果你想要做一些代碼,而該活動結束

您可以使用onDestroy()覆蓋方法,有時,如果該活動是由機器人本身殺了那麼你可以添加

isFinishing它也可以被稱爲()功能

裏面onDestroy()方法檢查應用程序是否通過調用finish()返回true或其他返回false關閉,然後您可以輕鬆地指定您的代碼爲每種情況。

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    if(isFinishing()){ 
     // Activity is being destroyed by the function `finish()` 
     // What to do... 
    }else{ 
     // Activity is being destroyed anonymously without `finish()` 
     // What to do... 
    } 
}