从后台应用启动活动

zer*_*rgy 3 android launching-application android-intent android-activity

我的应用程序在后台运行,我希望在下面的代码运行时,应用程序显示在Android手机的顶部(已启动).(我知道代码是肯定运行的)

这看起来很简单,但我花了几个小时在这个网站上,每个人似乎都在建议这样的事情:

Intent intent = new Intent(myActivity.this, myActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但是,它并没有将应用程序带到前面并启动它.

我从通知启动的PendingIntent中开始工作.我通过以下代码完成了这项工作.但我希望应用程序能够在用户没有点击通知的情况下自行启动.

Intent intent = new Intent(myActivity.this, myActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, REQUEST_CODE, intent, 0);
notification.setLatestEventInfo(this, "title", "msg", contentIntent);
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

Intent intent = new Intent("android.intent.action.MAIN");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

并标记意图:

intent.setFlags(Intent.FLAG_FROM_BACKGROUND);
intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Run Code Online (Sandbox Code Playgroud)

但似乎没有做任何事情,任何帮助赞赏.

Bra*_* P. 5

您应该可以像这样调用自己的应用程序:

Intent intent = new Intent("android.intent.category.LAUNCHER");
intent.setClassName("com.your.package", "com.your.package.MainActivity");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

编辑:忘记添加intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);