2011-12-16 10 views
0

私は、時にはalertdialog ..を表示するアクティビティを呼び出すサービスを持っています.OKボタンをクリックしたときに私は画面上にあった私のアプリのアクティビティに行きたいです。私のアプリは前に、ユーザは、表示されたウィンドウに戻って来なかった。これは私のalertdialogサービスから呼び出されたアクティビティを非表示にする方法android

public class ActivityNotification extends Activity{ 
private String client,notifica; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    client = getIntent().getStringExtra("client"); 
    notifica = getIntent().getStringExtra("notifica"); 

    final AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
    alertDialog.setTitle("Notifica da "+client); 
    alertDialog.setMessage(notifica); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      alertDialog.cancel(); 
     } 
    }); 
    alertDialog.setIcon(R.drawable.icon); 
    alertDialog.show(); 
} 
} 

であり、これは私がサービスからこの活動を呼び出す方法です

Notification notification = new Notification(R.drawable.icon, "Notifica da "+client, 10000); 
    notification.flags |=Notification.FLAG_AUTO_CANCEL; 
    CharSequence contentTitle = "Notifica da "+client; 
    CharSequence contentText = notifica; 
    notification.defaults |= Notification.DEFAULT_SOUND; 
    notification.defaults |= Notification.DEFAULT_VIBRATE; 
    //Intent notificationIntent = new Intent(this,ActivityNotification.class); 
    Intent notificationIntent = new Intent(); 
    notificationIntent.setClassName("package", "package.ActivityNotification"); 
    notificationIntent.putExtra("client",client); 
    notificationIntent.putExtra("notifica",notifica); 
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,0); 
    notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent); 
    mManager.notify(id, notification); 

何ができます私がやります?私を助けることができますか?

答えて

0

現在、電話機に搭載されているアプリケーションの履歴スタックを回復する必要があるようです。 ActivityManagerはこれを手伝うことができます。

参考:

http://developer.android.com/reference/android/app/ActivityManager.html

+0

moveTaskToBackを使用していますか? :) – JackTurky

+0

それは正しいです!しかし、もしLuxuryModeがあなたのコードを可能ならば本当にモジュール化すべきだと言っているので、それはずっと使いやすくなります! – JoxTraex

0

サービスからのアクティビティを開始するだけで、そこにはたくさんのものがあるようです。なぜあなたはちょうど次のようなことをすることができません:

Intent intent = new Intent(getBaseContext(), SomeActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
getApplication().startActivity(intent); 

関連する問題