在android上。 我的活动是这样的。
public class MainActivity extends Activity {
static TextView textview;
static int aaa = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
setContentView(R.layout.activity_main);
textview = (TextView)findViewById(R.id.textView6);
//其他方法,startservice()等。
并且有BroadcastReceiver从服务接收标志。
public static class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intents) {
intents.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
textview.setText("set")//throw null point
Log.d("aaa","aaa is" + aaa);
像这样,在onReceiver中,textview为null。
作为测试,int aaa是'无效。
为什么textview为null?
EDIT Texttiew xml是
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/adview"
android:layout_alignParentLeft="true"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
使用相同textview.settext的Activity中的方法不为null。 感谢。
EDIT2 我知道我应该保存这个变量。 那么,什么是保存VIEW变量的最佳方法? SharedPreferences似乎无法保存VIEW变量。
答案 0 :(得分:1)
此线程表示拥有静态字段可能是个问题。 通常,android会杀死你的应用..并且在返回静态变量时可能无法设置。
答案 1 :(得分:0)
这可能是您没有引用正确的textview元素。仔细检查布局文件中的ID。