我用這個代碼,以動態創建一個服務活動:如何在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);
但我有一個問題 - 這個活動沒有在任務管理器中顯示(如果我按下「主頁」按鈕,然後我無法重新打開活動)。我能做些什麼來解決它?
刪除此行intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); – Pasha
這是行不通的,我在LogCat中得到這個錯誤:android.util.AndroidRuntimeException:從活動上下文外調用startActivity()需要FLAG_ACTIVITY_NEW_TASK標誌 – BArtWell
也許這可以幫助你http://stackoverflow.com/questions/ 3689581 /從活動外部調用開始活動 – Pasha