我想启动我的应用程序并检查应用程序的onCreate方法中的连接状态,然后决定启动哪个活动!我知道我可以在设置之前完成()一个默认的MAIN / LAUNCHER活动,而在启动另一个活动时如果它相关,但这对我来说似乎很麻烦!
所以,我想知道是否有可能启动一个不会通过action.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:风格/ Theme.Dialog
我尝试了与上面的示例相同但结果相同:logcat说应用程序处于活动状态而根本没有打印...
告诉我,我是否不够清楚,以及以何种方式!我不是讲英语的人,我不习惯在论坛上提问!
答案 0 :(得分: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中定义要用作主要活动的活动,该文件位于项目目录的根目录。
您的应用的主要活动必须在清单中声明,其中包含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类。
如果未针对您的某项活动宣布MAIN操作或LAUNCHER类别,那么您的应用图标将不会显示在主屏幕的应用列表中