Je veux créer un programme dans lequel une activité est appelée après 30 secondes de clic. J'ai l'utilisateur pendingIntent
et BroadcastReciever
pour cela, mais rien ne se passe. Mon code est:Android Intention diffusion
package com.example.wrox;
import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class AlarmManagerDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Calendar cal= Calendar.getInstance();
cal.add(Calendar.SECOND, 30);
Button btn= (Button) findViewById(R.id.btn);
Intent intent= new Intent(this,AlarmManagerDemo.class);
intent.putExtra("alarm_message", "Maza aa gaya");
final PendingIntent sender= PendingIntent.getBroadcast(this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast message= Toast.makeText(getApplicationContext(), "This is Starting", Toast.LENGTH_LONG);
message.show();
AlarmManager am= (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
}
});
}
}
Cette activité appelle un réceptionnaire Broadcase après 30 secondes de clic. Code est:
package com.example.wrox;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class AlarmDemo extends BroadcastReceiver{
@Override
public void onReceive(Context ctx, Intent intent) {
try{
Bundle bundle= intent.getExtras();
String msg= bundle.getString("alarm_message");
Intent newIntent= new Intent(ctx, NewActivity.class);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(newIntent);
}
catch(Exception e)
{
Toast message= Toast.makeText(ctx, "Error occured", Toast.LENGTH_LONG);
message.show();
}
}
}
Cette BroadcastReciever
appelle une activité dans laquelle j'ai utilisé Toast
pour afficher un contenu statique. Mais rien ne se passe après le clic du bouton. S'il vous plaît me suggérer, où je me trompe? Aucune erreur et exception ne sont générées ...