android从后台线程启动活动

时间:2015-12-17 07:26:50

标签: android multithreading user-interface background-process

我的应用创建了一个计时器任务(后台线程)并定期需要显示一些内容。主屏幕可能稍后被其他应用隐藏。我发现(在stackoverflow上的AFAIRemember)为了制作Toast通知,我需要使用runOnUiThread runnable(只是Toast.makeText崩溃了应用程序。)

现在我希望我的后台线程能够收集用户输入。我创建了带布局的活动类,并通过意图

调用它
Intent intent = new Intent(this, screen2.class);
startActivityForResult(intent, 1);

当主屏幕处于活动状态时,我的新屏幕显示正常。但是当隐藏主屏幕时,我的另一个屏幕被隐藏,只有当我通过“最近”按钮再次激活我的应用程序时才能看到它。

我尝试通过runOnUiThread runnable运行第二个屏幕的意图 - 结果相同 - 隐藏新屏幕,直到我的应用处于有效状态。

后台线程如何在屏幕上显示某些活动(UI线程)?

P.S。

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivity(takePictureIntent); - 显示隐藏的摄像机屏幕,而下面的动作呼叫将呼叫屏幕置于当前屏幕上的其他应用程序之上

callIntent.setData(Uri.parse("tel:" + Uri.encode("+79851559700")));

        callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        callIntent.setPackage("com.android.phone");
        try {
            startActivity(callIntent);

Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);添加到相机意图制作的相机屏幕显示来自背景计时器,但是它没有让我的活动去做。

更改为intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);第二个屏幕出现在前景中,但不知何故它取代了主屏幕。

0 个答案:

没有答案