Android,创建通知代码什么都不做

时间:2017-07-29 22:55:42

标签: android

无法创建通知,我检查了几篇文章代码示例与我的相同。请检查下面的代码以及我在做错的地方。

下面我已经粘贴了2个班级。 MainActivity类,单击一次按钮即可创建通知。第二类,创建通知。

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    NotificationBuilder nB=new NotificationBuilder();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                goToSecondActivity();
                nB.createNotify();
            }

        });


    }

    private void goToSecondActivity() {


        Intent intent = new Intent(this, SecondActivity.class);
        startActivity(intent);

    }
}


**Second class**

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.support.v7.app.AppCompatActivity;

public class NotificationBuilder extends AppCompatActivity {

    void createNotify() {
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("My notification")
                .setContentText("Hello World!");

        Intent resultIntent = new Intent(this, MainActivity.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
        stackBuilder.addParentStack(MainActivity.class);
        stackBuilder.addNextIntent(resultIntent);

        PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
                0, PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(resultPendingIntent);
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        mNotificationManager.notify(001, mBuilder.build());
    }
}

尝试使用noughat和Kitkat Apis等级。 尝试使用另一部手机,但结果相似

1 个答案:

答案 0 :(得分:0)

NotificationBuilder nB=new NotificationBuilder();

你基本上不应该像这样创建Activity。这意味着几个必需的内部组件将无法正确初始化。

这意味着thiscreateNotify的所有实例都无法正常工作。上下文必须是MainActivity,而不是您的构建器类。

停止将NotificationBuilder延伸至Activity,并将正确的Context作为参数传递给createNotify。用上下文替换this的大多数调用都应该修复你的代码。