是否可以在没有UI的情况下从主函数启动活动?即,有没有办法围绕另一个活动创建一种"包装",即通过启动主要活动,它会自动带您到另一个活动.
如果这是不可能的,有没有办法从堆栈中删除主要活动,以便单击后退按钮不会将您带到空白UI?这是我正在尝试做的一个例子:
public class WrapperActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-1212"));
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
Jus*_*tin 123
Android还专门为此提供了一个主题:
android:theme="@android:style/Theme.NoDisplay"
Run Code Online (Sandbox Code Playgroud)
str*_*ark 50
在清单中,当您声明活动时,请使用主题 "@android:style/Theme.Translucent.NoTitleBar"
例如:
<activity android:name="yourActivityName" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar">
Run Code Online (Sandbox Code Playgroud)
Vis*_*ath 28
你需要添加Intent标志,
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)
要么
finish();在触发意图后调用" ".
运用
<activity android:name="yourActivityName" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar">
Run Code Online (Sandbox Code Playgroud)
Brian515提到的很棒.此方法对于创建入口点Activity非常有用,该入口点决定要调用哪些活动,启动,服务等,而无需向用户显示UI.记住finish()在你开始意图后使用.
小智 7
我想这对你有很大的帮助:
<activity android:name = "MyActivity"
android:label = "@string/app_name"
android:theme = "@android:style/Theme.NoDisplay" >
Run Code Online (Sandbox Code Playgroud)
我正在使用AppCompatActivity并且此 SO 中提供的解决方案没有解决我的问题。这对我有用。
我在我的styles.xml.
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.NoDisplay">
<item name="android:windowBackground">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:windowNoDisplay">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后,对于我想禁用显示的任何活动,我修改如下:
<activity
android:name=".NoDisplayActivity"
android:theme="@style/AppTheme.NoDisplay">
Run Code Online (Sandbox Code Playgroud)
干杯!
| 归档时间: |
|
| 查看次数: |
77748 次 |
| 最近记录: |