2016-02-16 103 views
1

我編寫了自定義視圖,並且在此視圖中,我有一個方法。當調用此方法(launchTestActivity)時,我希望它啓動另一個活動。從視圖中啓動活動需要太多時間

目前我的方法是這樣的:

private void launchTestActivity() { 
Context ctx = getContext(); 
     Intent intent = new Intent(ctx.getApplicationContext(), DeathScreenActivity.class); 
     ctx.startActivity(intent); 
} 

然而,當這種方法被調用,它需要時間來切換到新的活動(這僅僅是一個空白屏幕),我得到一個logcat的消息說該應用程序正在跳過幀。

你應該怎麼做?

+1

沒有理由調用ctx.getApplicationContext,只需傳入ctx即可。但時間上的問題將成爲本次活動或新創公司的其他事情,而不是這個。 –

+0

新活動的'onCreate()'方法會發生什麼?這很可能是週期正在使用的地方。 –

+0

@代碼學徒在新活動的'onCreate()'中沒有任何事情發生,截至目前它只是一個空白屏幕。然而,我從中調用'launchTestActivity()'的舊活動中的視圖是繪製遊戲的自定義視圖。 – Roymunson

回答

0

原來,因爲我是從正在測試每次onDraw()是被稱爲我打電話launchTestActivity()多次,從而多次推出新活動if聲明中調用launchTestActivity()

0

很確定它可能只是你的CPU或你的內存,需要一段時間來調用這個函數。無論如何,你都在正確地調用它。

0

該應用程序可能在其主線程上做了太多工作。你應該檢查DeathScreenActivity中的任何重疊。

+0

DeathScreenActivity沒有任何內容,但是我調用'launchTestActivity()'的視圖重複調用'onDraw()',你認爲這會是問題嗎? – Roymunson

+0

您可能正在設置視圖的背景,或嘗試顯示覆雜的動畫。嘗試解釋更多關於這兩個活動的實際工作 –

+0

我在DeathScreenActivity中沒有任何工作,但啓動DeathScreenActivity的活動包含爲遊戲進行大量計算的視圖。 – Roymunson

相關問題