Я разрабатываю приложение, которое запускает службу для проверки уведомлений.Как скрыть уведомление по щелчку и показать активность в android
public class ServiceNotification extends Service{
private ThreadNotification notifica;
private NotificationManager mManager;
private String id;
@Override
public void onCreate() {
super.onCreate();
SharedPreferences settings = getSharedPreferences("setting", 0);
String id = settings.getString("id", "no");
this.id=id;
mManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//notifica = new ThreadNotification(id,getApplicationContext(),getBaseContext());
}
private void showNotification(int id, String client, String notifica) {
Notification notification = new Notification(R.drawable.icon, "Notifica da "+client, 10000);
CharSequence contentTitle = "Notifica da "+client;
CharSequence contentText = notifica;
Intent notificationIntent = new Intent();
notificationIntent.setClassName("package", "package.ActivityNotification");
notificationIntent.putExtra("title",title);
notificationIntent.putExtra("notification",notification);
PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent,Notification.FLAG_AUTO_CANCEL);
notification.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);
mManager.notify(id, notification);
}
@Override
public void onStart(Intent intent, int startId) {
Thread t = new Thread(new Runnable(){
public void run(){
int i =0;
while(true){
String page = "http://mysite.com/notification.php?"+id;
String risposta = "";
try {
URL url = new URL(page);
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
risposta = in.readLine();
in.close();
String[] all = risposta.split("@@@");
String notification = all[0];
String title = all[1];
showNotification(i++, title, notification);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
});
t.start();
}
@Override
public void onDestroy() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
и это деятельность, я хочу, чтобы загрузить, когда уведомление щелкнул
public class ActivityNotification extends Activity{
private String title,notification;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this.c=this;
title = getIntent().getStringExtra("title");
notification = getIntent().getStringExtra("notification");
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Notifica da "+title);
alertDialog.setMessage(notification);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.cancel();
}
});
alertDialog.setIcon(R.drawable.errore_icon);
alertDialog.show();
}
}
Уведомление отображается, но когда я нажимаю на уведомление ничего не происходит. Уведомление все еще остается, и активность не загружается. Что я могу сделать? Можете ли вы мне помочь?
EDIT: с помощью
notification.flags |=Notification.FLAG_AUTO_CANCEL;
Уведомление будет спрятан по щелчку, но активность теперь отображается по-прежнему!
Вы пробовали 'уведомлениеIntent.setClassName (" packageName "," ActivityNotification ");'? – futtetennista
уверен! но никак .. – JackTurky
Yup, похоже, вы на самом деле не проходите класс, чтобы начать в ваших намерениях. просто добавьте это, и все должно работать нормально. – AedonEtLIRA