(AppCompat) 无界面活动的意义是什么?

8

根据这篇文章,我知道可以通过以下方式声明活动来创建没有用户界面的活动:

<activity
    android:name=".NoUIActivity"
    android:theme="@android:style/Theme.NoDisplay">
</activity>

我的问题是NoUIActivity扩展了AppCompatActivity。如果我在上面使用android:theme行,则会出现错误,指出我应该使用相应的AppCompat主题。请帮忙解决。谢谢!


2
可能有用:https://commonsware.com/blog/2015/11/02/psa-android-6p0-theme.nodisplay-regression.html - stkent
5
如果没有UI界面,只需扩展Activity而不是AppCompatActivity。在这种情况下使用AppCompatActivity有什么好处?另外,正如肯特先生指出的博客文章所述,您可能需要使用Theme.Translucent.NoTitleBar而不是Theme.NoDisplay - CommonsWare
我有一个预构建的活动处理程序类,它扩展了AppCompatActivity。我的所有其他活动都是它的子类,包括非UI活动。我可能只会为这个活动做一个例外。 - user1506104
2个回答

2

您的活动应该如下所示:

public class NoUIActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_no_uiactivity);
    }
}

在 AndroidManifest.xml 中声明活动,如下所示:

<activity
            android:name=".NoUIActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:exported="false" />

0
  1. 创建一个只有一个活动的应用程序
  2. 删除您不需要的布局xml文件
  3. 在Activity的onCreate()方法中,删除由Android Studio生成的setContentView
  4. 完成后调用finish()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接