我正在为我的大学项目创建一个Android应用程序。我想要包含一个告示板,如果发布通知,它会向所有相同的应用程序发送通知。登录的人可以查看通知。该通知将存储在包含具有5个表的表通知的MySql数据库中: 通知 - 号码通知 - 详细通知时间通知 - 日期发布。我到处搜索,但我找到的只是Google Cloud Messing 用于执行此操作的API或REST API。但我不想使用那些。我只想存储发布到数据库中的通知,如果有人登录,他/她会收到发布新通知的通知,并且能够查看它。我还没有完成Java代码,只需要知道如何做到这一点。如果有人可以帮助请。谢谢!!
My XML code: activity_notice.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="250dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="RECENT NOTICES"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textColor="#ff0612"
android:textSize="30dp"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="50dp"
android:id="@+id/noticeText"
android:hint="Post Notice"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="42dp"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView" />
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/sndnoticeBut"
android:src="@drawable/send1"
android:background="@null"
android:layout_alignTop="@+id/noticeText"
android:layout_toRightOf="@+id/noticeText"
android:layout_toEndOf="@+id/noticeText" />
</RelativeLayout>
Java code: Notice.java
import android.app.Activity;
import android.os.Bundle;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import static java.lang.System.currentTimeMillis;
public class Notice extends Activity
{
ImageButton notbut;
EditText nottxt;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notice);
notbut=(ImageButton)findViewById(R.id.sndnoticeBut);
nottxt=(EditText)findViewById(R.id.noticeText);
notbut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tittle = "You Have Received A Message";
String subject = "New Notice Posted";
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
String body = nottxt.getText().toString().trim();
NotificationManager notif = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify = new Notification(R.drawable.noti, tittle, System.currentTimeMillis());
PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0);
notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
notif.notify(0, notify);
}
});
}
}
答案 0 :(得分:0)
因此该设备上只有一个设备和一个应用程序。该应用程序有多个用户存储在sqlite数据库中。每个用户都可以在应用程序内编写通知。当其他用户登录时,应向他/她显示书面通知。
您需要的是能够区分某个用户是否看过通知。我建议您扩展users表以添加last_login列,如果此列尚不存在的话。然后,每次用户登录时,使用该列来获取在上次登录日期之后发布的通知。这应该产生用户没有看到的通知。显示通知并将该用户的last_login列设置为最近的日期,以便下次用户登录时不会返回旧通知。