在未设置启动 activity 的情况下启动应用程序
Beginning an application while no starting activity set
我想启动我的应用程序并在应用程序的 onCreate 方法中检查连接状态,然后决定启动哪个 activity!我知道我可以在 setLayout 之前完成()一个默认的 MAIN/LAUNCHER activity ,同时如果它是相关的话开始另一个,但这对我来说似乎很混乱!
所以,我想知道是否可以启动一个不显示 activity 和 action.MAIN / category.LAUNCHER 的应用程序?我试过这种方法,但它不起作用!我的意思是应用程序似乎启动了,但没有显示 activity!
(这不是我的真实代码示例,我现在不在家!可能缺少一些参数和内容,但我想您明白了!)
public class MyApp extends Application {
onCreate() {
Intent intent = new Intent(this, MyActivity.class);
intent.setFlags(Intent.NEW_TASK);
this.startActivity(intent);
}
}
此外,我的应用程序的第一个 activity 可能是一个 AlertDialog,我想知道我是否可以在没有 activity 启动时启动一个,或者我是否被迫设置一个 activity的主题@android:style/Theme.Dialog?
我尝试了与上述示例相同的方法,但结果相同:logcat 说应用程序处于活动状态,但根本没有打印...
告诉我我是否不够清楚以及在哪方面!我不会说英语,也不习惯在论坛上提问!
你必须走这条路:
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
当用户从主屏幕选择您的应用程序图标时,系统会为您已声明为 "launcher"(或"main") activity。这是作为应用程序用户界面主要入口点的 activity。
您可以在 Android 清单文件 AndroidManifest.xml 中定义哪个 activity 用作主要 activity,它位于项目目录的根目录。
您的应用程序的主要 activity 必须在清单中声明,其中包含 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 class,它在清单中声明为这个过滤器。
如果您的某个活动未声明 MAIN 操作或 LAUNCHER 类别,则您的应用图标将不会出现在主屏幕的应用列表中
我想启动我的应用程序并在应用程序的 onCreate 方法中检查连接状态,然后决定启动哪个 activity!我知道我可以在 setLayout 之前完成()一个默认的 MAIN/LAUNCHER activity ,同时如果它是相关的话开始另一个,但这对我来说似乎很混乱!
所以,我想知道是否可以启动一个不显示 activity 和 action.MAIN / category.LAUNCHER 的应用程序?我试过这种方法,但它不起作用!我的意思是应用程序似乎启动了,但没有显示 activity!
(这不是我的真实代码示例,我现在不在家!可能缺少一些参数和内容,但我想您明白了!)
public class MyApp extends Application {
onCreate() {
Intent intent = new Intent(this, MyActivity.class);
intent.setFlags(Intent.NEW_TASK);
this.startActivity(intent);
}
}
此外,我的应用程序的第一个 activity 可能是一个 AlertDialog,我想知道我是否可以在没有 activity 启动时启动一个,或者我是否被迫设置一个 activity的主题@android:style/Theme.Dialog?
我尝试了与上述示例相同的方法,但结果相同:logcat 说应用程序处于活动状态,但根本没有打印...
告诉我我是否不够清楚以及在哪方面!我不会说英语,也不习惯在论坛上提问!
你必须走这条路:
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
当用户从主屏幕选择您的应用程序图标时,系统会为您已声明为 "launcher"(或"main") activity。这是作为应用程序用户界面主要入口点的 activity。
您可以在 Android 清单文件 AndroidManifest.xml 中定义哪个 activity 用作主要 activity,它位于项目目录的根目录。
您的应用程序的主要 activity 必须在清单中声明,其中包含 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 class,它在清单中声明为这个过滤器。
如果您的某个活动未声明 MAIN 操作或 LAUNCHER 类别,则您的应用图标将不会出现在主屏幕的应用列表中