从服务恢复android活动

时间:2013-10-29 22:42:24

标签: android android-intent android-service

我需要从后台服务重新启动我的主要活动 我通过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();
            }
          }
        }

 };

2 个答案:

答案 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"