0

ここでアプリケーションの再開を通知から停止するためのコードを実装する方法は私のコードです。アプリケーションが最小化されると、最後のアクティビティが再開されます

ブロードキャスト レシーバー クラスを拡張する

Intent newIntent = new Intent(con, NotificationAlertForStopper.class);
        newIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        con.startActivity(newIntent);

NotificationAlertForStopper.java

public class NotificationAlertForStopper extends Activity
{
  private NotificationManager mNotificationManager;
  private int SIMPLE_NOTFICATION_ID;
  String getTime="0",aaa;
  CharSequence contentTitle, contentText;
   MediaPlayer mediaPlayer,mediaPlayer1;
   MyDataBase mdb;
   ArrayList<MoodsTimings> values;
   String dy;
   private final int SPLASH_DISPLAY_LENGHT = 15000;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
       mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
          final Notification notifyDetails = new Notification(R.drawable.appicon,"xxxxxxx",System.currentTimeMillis());


          int resID1=getResources().getIdentifier("relax", "raw", getPackageName());

               mediaPlayer=MediaPlayer.create(NotificationAlertForStopper.this,resID1);
               mediaPlayer.start();
               mediaPlayer.setLooping(true);



               int resID2=getResources().getIdentifier("inhale", "raw", getPackageName());

               mediaPlayer1=MediaPlayer.create(NotificationAlertForStopper.this,resID2);
               mediaPlayer1.start();
               mediaPlayer1.setLooping(true);

               new Handler().postDelayed(new Runnable() {
                  @Override
                  public void run() {
                      mediaPlayer.stop();
                      mediaPlayer1.stop();
                      mNotificationManager.cancel(SIMPLE_NOTFICATION_ID);
                  }
              }, SPLASH_DISPLAY_LENGHT);
          /* try {
                  Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                  Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
                  r.play();
              } catch (Exception e) {}*/

          Context context = getApplicationContext();

              contentTitle = "xxxxx";
              contentText = "xxxxxxxxxxxx Breathe";

              Intent notifyIntent = new Intent(this,Meditation.class);
              notifyIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
              PendingIntent intent = 
                  PendingIntent.getActivity(NotificationAlertForStopper.this, 0, 
                  notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);





          notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent);
          mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);
          //mNotificationManager.cancel(SIMPLE_NOTFICATION_ID);
          finish();

  }


}
4

2 に答える 2

0

可能な方法:

on extends ブロードキャスト レシーバー クラス

Intent newIntent = new Intent(con, NotificationAlertForStopper.class);

詐欺。startService (newIntent);

それから

パブリック クラス NotificationAlertForStopper はService を拡張します

于 2013-10-25T22:15:34.420 に答える
0

Intent notifyIntent = new Intent(this,Meditation.class);これは、アクティビティの onCreate() でこれを記述したために発生します。

基本的なフローは、デバイスの通知トレイに通知が表示されたら、それをクリックしてアクティビティを開く必要があります。

于 2013-10-21T11:57:31.983 に答える