2012-12-10 58 views
0

我有一臺工業應用程序,可以通過PC遠程控制。該應用程序有兩個稍微不同的版本 - 一個用於Honeycomb平板電腦,另一個用於薑餅手機。區別在於利用硬件中的獨特功能(例如,手機具有更好的相機,平板電腦可以顯示更大的圖形),但活動啓動代碼是相同的。爲什麼我的活動不會啓動?

應用中的線程從PC接收命令並顯示不同的屏幕(即,開始不同的活動)。它可以在手機上正常工作,但在平板電腦上,一項活動無法啓動,但不會引發異常情況。斷點和登錄該活動的onResume()從未被擊中,即使他們在電話中。以下是我嘗試開始活動的方式。 。 。

try { 
     Intent svc = new Intent(ctx, RemoteControlActivity.class); 
     ctx.startActivity(svc); 
    } 
    catch (Exception e) { // or ActivityNotFoundException e 
     Log.d("ShowButtons(normal)", "startActivity failed"); 
    }  

(CTX爲上下文 - 在調試器的上下文是用於既在非工作的情況下的工作是相同的)

其被啓動失敗的片劑的活性在定義這樣清單。 。 。

<activity 
     android:launchMode="singleTask" 
     android:label="@string/app_name" 
     android:windowNoTitle="false" 
     android:configChanges="orientation" 
     android:screenOrientation="landscape" 
     android:name="RemoteControlActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

這是駕駛我巴蒂 - 預先感謝任何幫助!

+2

執行'ctx.startActivity'時沒有錯誤跟蹤並且沒有異常? – fiddler

+2

不是'。' android:name中的RemoteControlActivity之前需要什麼? –

+0

@fiddler - 正確 - 它不會拋出異常(正如我在OP中所說的) – user316117

回答

0

我找到了一個解決方案。我以這種方式發佈,因此我可以將其標記爲「已回答」,以防其他人遇到此問題並正在尋找解決方法。但我承認我不明白它爲什麼有效。

當我嘗試啓動RemoteControlActivity時,突破發現它在屏幕上顯示當前活動的重要性。當我在屏幕上顯示一些圖形的活動時發生故障。我用不同的活動代替了一些按鈕,問題就消失了。

望着清單我注意到,「好」的活性設定爲:

Android:launchMode="singleTask" 

和「壞」之一,被設置爲:

Android:launchMode="singleInstance" 

當我改變了圖形活動到「單個任務」問題就消失了。

0

試試這個

Intent svc = new Intent(ctx, RemoteControlActivity.class); 
    svc.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    ctx.startActivity(svc); 

按照文檔

當使用這個標誌,如果一個任務已經爲你現在開始的活動運行,則新的活動將不會啓動;相反,當前任務將被簡單地帶到屏幕的最前面狀態

+0

我真的認爲這會起作用;我已經準備了一封感謝信,但唉,沒有運氣。該活動仍然沒有開始(至少onResume從未被擊中),但沒有例外被拋出。這是莫名其妙的。 – user316117

+0

你可以發佈你的RemoteControlActivity的onCreate(),以及它的API級別是什麼?我現在很好奇爲什麼你的活動沒有開始。 –

+0

API級別是13. onCreate是巨大的,包含專有內容,正如我所說的,因爲它是主要活動,它已經成功啓動一次。但是我有一個新的線索。 。 。關鍵因素似乎是Activity目前處於頂峯。無法啓動時當前正在運行的活動是顯示一些JPEG圖形和一些按鈕的活動。如果我替換一個不同的活動,例如顯示一個按鈕網格的活動,那麼RemoteControlActivity啓動就好了。 – user316117

相關問題