我需要从后台服务重新启动我的主要活动 我通过BroadcastReceiver得到了我的服务结果,我需要恢复它(经过一些操作)。
有可能吗?
我怎么能这样做?
我尝试了这个解决方案Resume application and stack from notification,但它对我不起作用。
编辑:
那是我的接收器:
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
int resultCode = bundle.getInt(DownloadService.RESULT);
if (resultCode == RESULT_OK) {
Log.i("MyApp", "RESULT OK");
final Intent mainIntent = new Intent(context, MainActivity.class);
mainIntent.setAction(Intent.ACTION_MAIN);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(mainIntent);
} else {
Toast.makeText(MainActivity.this, "KO",Toast.LENGTH_LONG).show();
}
}
}
};
答案 0 :(得分:5)
Intent intent = new Intent(context.getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
context.getApplicationContext().startActivity(intent);
答案 1 :(得分:3)
您必须将此标志与您的意图一起使用:
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
如果您不想要Activity的新实例,请在AndroidManifest文件中为您的Activity设置launchMode:
android:launchMode="singleTask"