Articles of android activity

如何设置FLAG_ACTIVITY_CLEAR_TASK以避免startActivity上的黑屏?

我正在启动一项新的活动,使用以下内容: Intent intent = new Intent(this, MyNewActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); overridePendingTransition(0, 0); 当MyNewActivity启动时,会显示黑屏。 如果我删除了Intent.FLAG_ACTIVITY_CLEAR_TASK ,则活动在任何时刻都不会显示黑屏,而是会在启动时显示上一个活动。 有没有办法避免这个黑屏? 删除标志似乎不是一个选项(我需要清除所有当前任务的堆栈,并启动一个新的活动作为根)。 编辑:我附上一个非常简单的代码,重现问题(为应用程序设置一个黑暗的主题,如Theme.AppCompat )。 黑屏显示的时间很less(取决于接收活动在启动时做多less工作),但您可以看到它。 如果您不使用FLAG_ACTIVITY_CLEAR_TASK ,则不会显示黑屏,并且转换非常stream畅: 主要活动 public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, MyNewActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | […]

如何将两个Android活动绑定到一个服务?

我想问一个例子,其中两个不同的活动(button在第一个活动打开第二个活动),与一个服务(AIDL等)沟通我已经尝试了许多不同的教程,但他们只是关于如何使一个活动 – >一个服务。

在Intent中传递对象引用而不实现Serializable或Parcelable

我知道类似的问题已被多次询问。 我想我读了大部分。 但是没有答案是适用的。 我需要通过Intents(活动调用/广播)传递复杂的对象。 一切都在我的过程中完成。 这就是为什么我没有理由把我的对象写入Streams中,只是在几毫秒之后重新组装它们。 我想通过我的应用程序传递我的对象引用。 有没有办法做到这一点。 由于我的应用程序将连续多次广播相同的事件,我不能依靠静态成员。 我需要为我所播放的东西放弃同一个对象。 这就是为什么我在考虑一个静态的“Referenceholder”,它将接受一个Object,并返回一个在其内部列表中标识这个对象的整数,所以我可以通过.putExtras传递这个整数。 但据我所知,Java我无法清除这个对象从这个列表中添加后,因为多个Listener可以在同一个对象中进行交互,我将永远保留在我的Referenceholder(假设一个线程可以随时恢复 – 甚至2分钟后)。 有任何想法吗? 难道我做错了什么? 或者我可以如何清理我的引用(可能在几秒钟之后?这可能会导致崩溃,但它似乎更适用于编写无故组装和重新组装我的对象的代码)

我们应该使用setTargetFragment()吗? 我以为碎片不应该彼此沟通

android开发者教程推荐我使用片段的主机活动来传递数据,而为什么有一个set / get target片段方法? 到目前为止,我的应用程序包含一个主机活动和一个片段,它有一个启动DialogFragment的button,其中有一个启动另一个DialogFragment的button。 使用setTargetFragment/getTargetFragment已经使这个整个考验有点混乱,所以我想重新实现,让我的主要活动通过我的主要片段的自定义接口处理DialogFragment.show方法。 这是正确的思维方式吗? 或者在使用setTargetFragment没有害处? 任何人都可以提供使用它的好的和坏的例子吗?

如何在Android中打开新的屏幕?

我是新来的android和我已经创build一个login页面validationlogin后 我得到的结果是真实的还是错误的基础上的用户身份validation现在我的目标是显示另一个成功的身份validation与一些新的文本框和button我的意思是新的布局如何实现这个? 任何帮助将appriciated。

如何从android中的线程类启动一个活动?

我正在扩展一个线程类,并从那个类我想开始一个活动。 这个怎么做?

Android:无法从PreferenceActivity中查找显式活动类… startActivity

我试图从PreferenceActivity开始一个新的活动。 但是,“无法find明确的活动类”失败,您是否在AndroidManifest.xml中声明了这个活动? 那么,是的,我宣布它: <application [……] android:debuggable="true"> <activity android:name=".AlarmSettings" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".FlashLightActivity"></activity> <receiver android:name="AlarmReceiver" android:process=":remote" > </receiver> </application> AlarmSettings是我的PreferenceActivity。 AlarmSettings以这种方式调用FlashLightActivity: Intent i = new Intent(AlarmSettings.this, FlashLightActivity.class); startActivity(i); 这是FlashLightActivity: public class FlashLightActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.flashlight); } } … 我不知道该怎么办。 有任何想法吗?

在Android中“最小化”活动(不要完成)

我想“最小化”应用程序,并将其保留在后台,当用户单击button时按下主页button(但不完成),我该怎么做?

ListFragment vs ListActivity – 使用哪一个?

有人能告诉我应该使用哪一个? 我的意思是“最佳实践”。 谢谢。

在运行时检测硬件加速:Android

是否可以始终检测一个活动是否在创build时启用了硬件加速? 我担心我的图书馆的用户会通过清单来启用它,而不是为我的活动而禁用它(正如我指示他们那样做)。 我可以find唯一可靠的信息( http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html )说,我可以查询View.isHardwareAccelerated()和Canvas.isHardwareAccelerated() 。 但是,为了我的目的,我想确保在我的图书馆的活动显示时closures。 到目前为止,我不能得到任何报告一致的是/否,当它打开或closures。 我试图在虚拟视图中进行黑客攻击,将其设置为我的活动,然后对其进行testing,但始终返回false。 另外,我试着testingWindow.getAttributes( ).flags ,但是它们也没有显示出来。 我正在testing这个,因为我的库的硬件加速绘制path无法正常工作,似乎没有任何方法可以解决这个问题。