为了账号安全,请及时绑定邮箱和手机立即绑定

从Activity外部调用startActivity()?

从Activity外部调用startActivity()?

回首忆惘然 2019-10-16 13:44:47
我正在使用AlarmManager触发广播信号的意图。以下是我的代码:AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);Intent i = new Intent(this, Wakeup.class);try{    PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);    Long elapsed +=  // sleep time;    mgr.set(AlarmManager.RTC_WAKEUP, elapsed, pi);}catch(Exception r){    Log.v(TAG, "RunTimeException: " + r);}我正在从调用此代码Activity,所以我不知道如何得到以下错误...ERROR/AndroidRuntime(7557): java.lang.RuntimeException: Unable to start receiver com.wcc.Wakeup: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

如果您的Android版本低于Android-6,则需要添加此行,否则它将在Android-6以上运行。


...

Intent i = new Intent(this, Wakeup.class);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

...


查看完整回答
反对 回复 2019-10-16
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

对于同一活动的多个实例,请使用以下代码段,


注意:此代码段是我在之外使用的Activity。确保您的AndroidManifest文件不包含android:launchMode="singleTop|singleInstance"。如果需要,可以将其更改为android:launchMode="standard"。


Intent i = new Intent().setClass(mActivity.getApplication(), TestUserProfileScreenActivity.class);  

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);


// Launch the new activity and add the additional flags to the intent

mActivity.getApplication().startActivity(i);

这对我来说很好。希望这可以为某人节省时间。如果有人找到更好的方法,请与我们分享。


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 789 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信