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,如果您决定转移到其他活动或停留在此处,则可以在之后执行此操作。 –