0

我想啓動我的應用程序,並檢查應用程序的onCreate方法中的連接狀態,然後決定開始哪個活動!我知道我可以在setLayout之前完成()一個默認的MAIN/LAUNCHER活動,同時開始另一個相關的活動,但這對我來說似乎很混亂!開始一個應用程序,而沒有開始活動設置

所以,我想知道是否有可能啓動一個應用程序,其中沒有顯示一個activity.MAIN/category.LAUNCHER活動?我試過這種方式,但它不起作用!我的意思是應用程序似乎開始,但沒有顯示任何活動!

(這不是從我的實際代碼的樣本,我不在家,現在!一些參數之類的東西可能會丟失,但我想你明白了吧!)

public class MyApp extends Application { 
    onCreate() { 
     Intent intent = new Intent(this, MyActivity.class); 
     intent.setFlags(Intent.NEW_TASK); 
     this.startActivity(intent); 
    } 
} 

此外,我的應用程序的第一個活動可能是AlertDialog,我想知道如果我可以在沒有活動開始的情況下啓動一個活動,或者如果我強制使用@android:style/Theme.Dialog設置活動的主題?

我試過相同上面的例子,但相同的結果:logcat的話說應用活着而沒有印刷在所有...

告訴我,如果我不夠明確以何種方式!我不是說英語的人,我不習慣在論壇上提問!

回答

1

你將不得不走這條路:

public class MainActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     setContentView(R.layout.some_empty_or_loading_view); //optional probably, not sure 

     //TODO: check whatever you want 
     if(condition) { 
      startActivity(this, SomeActivity.class); 
     } else { 
      startActivity(this, AnotherActivity.class); 
     } 

     finish(); 
    } 
} 

Specify Your App's Launcher Activity

當用戶從主屏幕中選擇您的應用程序圖標時,系統將調用您應用中的活動的onCreate()方法你宣稱是「發射器」(或「主」)活動。這是作爲應用用戶界面主要入口點的活動。

您可以定義哪個活動用作Android清單文件AndroidManifest.xml中的主要活動,AndroidManifest.xml位於項目目錄的根目錄下。

您的應用程序的主要活動必須在清單中聲明,其中包括MAIN操作和LAUNCHER類別。例如:

<activity android:name=".MainActivity" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

注意:當您創建了Android SDK工具一個新的Android項目,默認的項目文件包括在清單中,該濾波器聲明的Activity類。

如果兩個主要動作或LAUNCHER類別未申報的活動之一,那麼你的應用程序圖標將不會出現在應用程序

+0

這是正確的做法,你可以決定連接的主屏幕上的名單(例如在應用程序中創建onCreate,這很好),但是你應該有一個LauncherActivity,在'onCreate'期間決定要做什麼(例如:啓動另一個活動或只顯示正確的內容,而不是啓動另一個活動......因爲你已經在那裏了)。請注意,在進行檢查之前,您不需要設置ContentContentView,如果您決定轉移到其他活動或停留在此處,則可以在之後執行此操作。 –