在安卓上。我的活动是这样的。
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 为空。作为测试,int aaa 不是空的。
为什么 textview 为空?
编辑 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" />
并且在 Activity 中使用相同的 textview.settext 方法不是 null。谢谢。
EDIT2 我知道我应该保存这个变量。那么,保存 VIEW 变量的最佳方法是什么?SharedPreferences 似乎无法保存 VIEW 变量。