startActivityForResult(captureIntent, 123);
因為startActivityForResult不能寫在非靜態類里,為了能在其他類呼叫,我只能按下面方法呼叫
ab test = new ab();
test.ddd();
可是又提示
::Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
哎!不知道哪里有問題
求教
startActivityForResult 怎么才能寫在靜態類里呢?
或者
ab test = new ab();
test.ddd();
這樣呼叫也行,可是卻出錯,難道startActivityForResult 不能 new 嗎?
下面是代碼,謝謝幫我看看吧
public class ab extends Activity {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "正常回傳");
}
public void ddd() {
try {
final MediaProjectionManager mMediaProjectionManager = (MediaProjectionManager)getSystemService(MEDIA_PROJECTION_SERVICE);
Intent captureIntent = mMediaProjectionManager.createScreenCaptureIntent();
startActivityForResult(captureIntent, 123);
} catch (Exception e) {
Log.d(TAG, "出錯額::"+e.getMessage());
e.printStackTrace();
}
}
}
uj5u.com熱心網友回復:
startActivityForResult(captureIntent, 123);執行這一句的時候提示出錯
::Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
uj5u.com熱心網友回復:
你是第一次寫Android嗎?Activity是能new出來的嗎?四大組件都是系統管理的。Activity要由系統行程ActivityManagerService.java通過遠程rpc呼叫來創建,為其創建一個ActivityThread做為其UI主執行緒,還要創建looper用來處理handler的訊息回圈,還要將WindowManagerService跟相應Activity系結用來加載View,此外ActivityManagerService.java還負責呼叫Activity的一系列生命周期函式。你new只能得到一個ab的普通物件,而不是一個Activityuj5u.com熱心網友回復:
uj5u.com熱心網友回復:
Activity是不能new的為什么要在其他類里面呼叫
不能換個方法嗎
在需要呼叫的地方給Activity發個訊息,Activity收到訊息執行startActivityForResult 就是了
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/268979.html
標籤:Android
