2012-08-30 41 views
1

我用這個代碼,以動態創建一個服務活動:如何在TaskManager中註冊活動?

清單:

<activity android:name="ServiceDialog" android:label="" android:theme="@android:style/Theme.Dialog" /> 

活動類:

public class ServiceDialog extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent=getIntent(); 
     String text = ""; 
     if(intent.hasExtra("text")) text = intent.getStringExtra("text"); 

     AlertDialog.Builder alert = new AlertDialog.Builder(this); 
     alert.setTitle("Alert"); 
     alert.setIcon(android.R.drawable.ic_dialog_info); 
     alert.setMessage(text); 
     alert.setPositiveButton(android.R.string.ok, 
       new OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         ServiceDialog.this.finish(); 
        } 
       }); 
     alert.setOnCancelListener(new OnCancelListener() { 
      @Override 
      public void onCancel(DialogInterface arg0) { 
       ServiceDialog.this.finish(); 
      } 
     }); 
     alert.show(); 
    } 

} 

活動創建:

Intent intent = new Intent("android.intent.action.MAIN"); 
intent.setClass(this, ServiceDialog.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.putExtra("text", "Hello!"); 
startActivity(intent); 

但我有一個問題 - 這個活動沒有在任務管理器中顯示(如果我按下「主頁」按鈕,然後我無法重新打開活動)。我能做些什麼來解決它?

+0

刪除此行intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); – Pasha

+0

這是行不通的,我在LogCat中得到這個錯誤:android.util.AndroidRuntimeException:從活動上下文外調用startActivity()需要FLAG_ACTIVITY_NEW_TASK標誌 – BArtWell

+0

也許這可以幫助你http://stackoverflow.com/questions/ 3689581 /從活動外部調用開始活動 – Pasha

回答

0

使用此代碼來開始您的活動。

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.putExtra("text", "Hello!"); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity")); 
startActivity(intent); 
+0

此代碼不起作用,我在LogCat中出現此錯誤:android.util.AndroidRuntimeException:從Activity上下文外部調用startActivity()需要FLAG_ACTIVITY_NEW_TASK標誌。如果我設置這個標誌沒有錯誤,但它也不起作用(警告不顯示)。 – BArtWell

+0

嘗試編輯答案。 –

+0

是的,我嘗試去做,但它仍然不起作用。 – BArtWell