当前位置: 首页 > 知识库问答 >
问题:

从一个活动的外部调用启动活动()

杭镜
2023-03-14

我有一个应用程序的屏幕小部件。单击此小部件时,会打开“DeveloperMode”设置。但在一些设备上,应用程序因以下消息而崩溃。

引起:android.util.AndroidRuntimeExcture:从活动上下文外部调用starActive()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗?

我曾尝试使用addFlags和setFlags添加这一行,但仍然存在相同的问题。我以前也问过类似的问题,但没有一个有效。这是我的DevModeWidgetReceiver,它扩展了BroadcastReceiver

public class DevModeWidgetReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);

        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
        appWidgetManager.updateAppWidget(new ComponentName(context, DevModeWidgetReceiver.class), views);

        //without FLAG_ACTIVITY_NEW_TASK
        //context.startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS));

        //with set FLAG_ACTIVITY_NEW_TASK
        /*Intent intent1 = new Intent(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent1);*/

        //with add FLAG_ACTIVITY_NEW_TASK
        Intent intent1 = new Intent(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS));
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.getApplicationContext().startActivity(intent1);

    }

}

共有1个答案

相诚
2023-03-14

问题很明显(实际上是经典的编程一:))-您没有将标志设置为新创建的intent1,而是设置为作为参数传递的intent1。所以你只需要把这个改成:

intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

然后它应该会起作用。

 类似资料:
  • 在我的程序中,我有一个当应用程序打开时启动的活动。如果我再打开几个活动,我怎么能回到主活动?在意图过滤器中,活动的名称是“android.intent.action.MAIN”,它不允许我在上面调用start Active()。我该怎么办?

  • 当我从BroadCastReceiver启动活动时,会出现异常“从活动上下文外部调用startActivity(),需要标记_activity_NEW_TASK”。下面是我的接收代码 } 你可以看到,我已经设置了FLAG_ACTIVITY_NEW_TASK。我想指出另一件事。我从工作线程中的HTTP请求发送broadcastreceiver。代码最像这样: 有人遇到问题吗?任何帮助都很好。

  • 我试图通过按cardview开始另一项活动,cardview有一个朋友查找id。但是当我写回家时。java它给了我setOnClickListener中的问题。在homeActivity中,它告诉我无法解析“homeActivity”中的方法“homeActivity”。因为

  • 问题内容: 我遇到的问题是MainActivity中的onCreate()方法似乎无法启动另一个活动。 我的代码在工作,因此当我单击按钮时,“ AboutActivity”将启动。但是,我要这样做,以便MainActivity中的onCreate()完成后立即启动“ AboutActivity”。 尝试从onCreate()启动“ AboutActivity”时运行该程序时,该程序陷入了空白屏幕。

  • Logcat按摩 **从活动上下文外部调用startActivity()需要标志_Activity_NEW_TASK标志。这真的是你想要的吗?

  • 我在使ActivityRecognitation服务保持运行时遇到问题。我目前有一个在后台连续运行的服务(GService)。我希望在GService中启动ActivityRecognitation服务,并让ActivityRecognitation服务将活动结果广播回GService。我能够启动服务并接收它正在运行的反馈,我还从意图处理程序获得一个结果(没有实际数据),但再也不会得到了。 以下是