在没有开始活动设置的情况下开始申请

时间:2015-11-30 18:32:32

标签: android android-intent android-activity android-alertdialog

我想启动我的应用程序并检查应用程序的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说应用程序处于活动状态而根本没有打印...

告诉我,我是否不够清楚,以及以何种方式!我不是讲英语的人,我不习惯在论坛上提问!

1 个答案:

答案 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类别,那么您的应用图标将不会显示在主屏幕的应用列表中